diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/MainActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/MainActivity.java index 7f5d7273d..d9600424f 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/MainActivity.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/MainActivity.java @@ -141,6 +141,13 @@ public class MainActivity extends AppCompatActivity Account account = new AccountDAO(getApplicationContext(), db).getAccountByToken(prefKeyOauthTokenT); updateHeaderAccountInfo(MainActivity.this, account, headerLayout, imageLoader, options); + //Locked account can see follow request + if (account.isLocked()) { + navigationView.getMenu().findItem(R.id.nav_follow_request).setVisible(true); + } else { + navigationView.getMenu().findItem(R.id.nav_follow_request).setVisible(false); + } + LinearLayout owner_container = (LinearLayout) headerLayout.findViewById(R.id.owner_container); owner_container.setOnClickListener(new View.OnClickListener() { @Override diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/SearchResultActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/SearchResultActivity.java index 8a2c9648a..a7929b500 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/SearchResultActivity.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/SearchResultActivity.java @@ -99,7 +99,7 @@ public class SearchResultActivity extends AppCompatActivity implements OnRetriev Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show(); return; } - if( results == null){ + if( results == null || (results.getAccounts().size() == 0 && results.getStatuses().size() == 0 && results.getHashtags().size() == 0)){ RelativeLayout no_result = (RelativeLayout) findViewById(R.id.no_result); no_result.setVisibility(View.VISIBLE); return; diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java index 3cf2eceb5..fbcf2cfb6 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java @@ -19,6 +19,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; +import android.graphics.PorterDuff; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; @@ -27,6 +28,7 @@ import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; +import android.support.v4.content.ContextCompat; import android.support.v4.content.LocalBroadcastManager; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; @@ -224,7 +226,9 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi account_follow.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if( doAction == action.FOLLOW){ + if( doAction == action.NOTHING){ + Toast.makeText(getApplicationContext(), R.string.nothing_to_do, Toast.LENGTH_LONG).show(); + }else if( doAction == action.FOLLOW){ account_follow.setEnabled(false); new PostActionAsyncTask(getApplicationContext(), API.StatusAction.FOLLOW, accountId, ShowAccountActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); }else if( doAction == action.UNFOLLOW){ @@ -323,11 +327,13 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi Toast.makeText(getApplicationContext(), error.getError(),Toast.LENGTH_LONG).show(); return; } + account_follow.setEnabled(true); if( relationship.isBlocking()){ account_follow.setText(R.string.action_unblock); doAction = action.UNBLOCK; }else if( relationship.isRequested()){ account_follow.setText(R.string.request_sent); + account_follow.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.colorPrimary), PorterDuff.Mode.MULTIPLY); doAction = action.NOTHING; }else if( relationship.isFollowing()){ account_follow.setText(R.string.action_unfollow); @@ -336,13 +342,12 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi account_follow.setText(R.string.action_follow); doAction = action.FOLLOW; }else{ + account_follow.setText(R.string.action_no_action); + account_follow.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.red_1), PorterDuff.Mode.MULTIPLY); doAction = action.NOTHING; } - if( doAction == action.NOTHING){ - account_follow.setEnabled(false); - }else { - account_follow.setEnabled(true); - } + + //The authenticated account is followed by the account if( relationship.isFollowed_by()){ diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/AccountsFollowRequestAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/AccountsFollowRequestAdapter.java index 1b1aea93a..d022b5961 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/AccountsFollowRequestAdapter.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/AccountsFollowRequestAdapter.java @@ -16,8 +16,12 @@ package fr.gouv.etalab.mastodon.drawers; import android.content.Context; +import android.content.Intent; import android.content.SharedPreferences; +import android.graphics.PorterDuff; import android.os.AsyncTask; +import android.os.Bundle; +import android.support.v4.content.ContextCompat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -35,6 +39,7 @@ import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer; import java.util.ArrayList; import java.util.List; +import fr.gouv.etalab.mastodon.activities.ShowAccountActivity; import fr.gouv.etalab.mastodon.asynctasks.PostActionAsyncTask; import fr.gouv.etalab.mastodon.client.API; import fr.gouv.etalab.mastodon.client.Entities.Account; @@ -101,10 +106,24 @@ public class AccountsFollowRequestAdapter extends BaseAdapter implements OnPostA } else { holder = (ViewHolder) convertView.getTag(); } + + holder.btn_authorize.getBackground().setColorFilter(ContextCompat.getColor(context, R.color.green_1), PorterDuff.Mode.MULTIPLY); + holder.btn_reject.getBackground().setColorFilter(ContextCompat.getColor(context, R.color.red_1), PorterDuff.Mode.MULTIPLY); holder.account_un.setText(String.format("@%s", account.getUsername())); //Profile picture imageLoader.displayImage(account.getAvatar(), holder.account_pp, options); - + holder.account_pp.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + openAccountDetails(account.getId()); + } + }); + holder.account_un.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + openAccountDetails(account.getId()); + } + }); holder.btn_authorize.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -120,6 +139,14 @@ public class AccountsFollowRequestAdapter extends BaseAdapter implements OnPostA return convertView; } + private void openAccountDetails(String userId){ + Intent intent = new Intent(context, ShowAccountActivity.class); + Bundle b = new Bundle(); + b.putString("accountId", userId); + intent.putExtras(b); + context.startActivity(intent); + } + @Override public void onPostAction(int statusCode, API.StatusAction statusAction, String userId, Error error) { if( error != null){ diff --git a/app/src/main/res/layout/drawer_account_follow_request.xml b/app/src/main/res/layout/drawer_account_follow_request.xml index 4e5c807b2..6fbac095e 100644 --- a/app/src/main/res/layout/drawer_account_follow_request.xml +++ b/app/src/main/res/layout/drawer_account_follow_request.xml @@ -25,15 +25,17 @@ @@ -41,7 +43,7 @@ android:layout_width="wrap_content" android:gravity="end" android:layout_height="wrap_content" - android:orientation="horizontal"> + android:orientation="vertical">