Fixes menu selection issue
This commit is contained in:
parent
8c3c30215d
commit
c608f0bdf0
|
@ -29,7 +29,6 @@ import android.support.v4.app.FragmentManager;
|
||||||
import android.support.v4.view.ViewPager;
|
import android.support.v4.view.ViewPager;
|
||||||
import android.support.v7.app.AlertDialog;
|
import android.support.v7.app.AlertDialog;
|
||||||
import android.support.v7.widget.SearchView;
|
import android.support.v7.widget.SearchView;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.support.design.widget.NavigationView;
|
import android.support.design.widget.NavigationView;
|
||||||
import android.support.v4.view.GravityCompat;
|
import android.support.v4.view.GravityCompat;
|
||||||
|
@ -105,7 +104,6 @@ public class MainActivity extends AppCompatActivity
|
||||||
private ViewPager viewPager;
|
private ViewPager viewPager;
|
||||||
private RelativeLayout main_app_container;
|
private RelativeLayout main_app_container;
|
||||||
private Stack<Integer> stackBack = new Stack<>();
|
private Stack<Integer> stackBack = new Stack<>();
|
||||||
|
|
||||||
public MainActivity() {
|
public MainActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -194,7 +192,7 @@ public class MainActivity extends AppCompatActivity
|
||||||
if( item != null){
|
if( item != null){
|
||||||
toolbarTitle.setText(item.getTitle());
|
toolbarTitle.setText(item.getTitle());
|
||||||
populateTitleWithTag(fragmentTag, item.getTitle().toString(), item.getItemId());
|
populateTitleWithTag(fragmentTag, item.getTitle().toString(), item.getItemId());
|
||||||
unCheckAllMenuItems(navigationView.getMenu());
|
unCheckAllMenuItems(navigationView);
|
||||||
item.setChecked(true);
|
item.setChecked(true);
|
||||||
}
|
}
|
||||||
if( tab.getPosition() < 3 )
|
if( tab.getPosition() < 3 )
|
||||||
|
@ -365,17 +363,17 @@ public class MainActivity extends AppCompatActivity
|
||||||
final NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
|
final NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
|
||||||
userIdIntent = extras.getString(PREF_KEY_ID); //Id of the account in the intent
|
userIdIntent = extras.getString(PREF_KEY_ID); //Id of the account in the intent
|
||||||
if (extras.getInt(INTENT_ACTION) == NOTIFICATION_INTENT){
|
if (extras.getInt(INTENT_ACTION) == NOTIFICATION_INTENT){
|
||||||
unCheckAllMenuItems(navigationView.getMenu());
|
|
||||||
changeUser(MainActivity.this, userIdIntent, false); //Connects the account which is related to the notification
|
changeUser(MainActivity.this, userIdIntent, false); //Connects the account which is related to the notification
|
||||||
|
unCheckAllMenuItems(navigationView);
|
||||||
tabLayout.getTabAt(3).select();
|
tabLayout.getTabAt(3).select();
|
||||||
matchingIntent = true;
|
matchingIntent = true;
|
||||||
}else if( extras.getInt(INTENT_ACTION) == HOME_TIMELINE_INTENT){
|
}else if( extras.getInt(INTENT_ACTION) == HOME_TIMELINE_INTENT){
|
||||||
unCheckAllMenuItems(navigationView.getMenu());
|
unCheckAllMenuItems(navigationView);
|
||||||
changeUser(MainActivity.this, userIdIntent, false); //Connects the account which is related to the notification
|
changeUser(MainActivity.this, userIdIntent, false); //Connects the account which is related to the notification
|
||||||
tabLayout.getTabAt(0).select();
|
tabLayout.getTabAt(0).select();
|
||||||
matchingIntent = true;
|
matchingIntent = true;
|
||||||
}else if( extras.getInt(INTENT_ACTION) == CHANGE_THEME_INTENT){
|
}else if( extras.getInt(INTENT_ACTION) == CHANGE_THEME_INTENT){
|
||||||
unCheckAllMenuItems(navigationView.getMenu());
|
unCheckAllMenuItems(navigationView);
|
||||||
navigationView.setCheckedItem(R.id.nav_settings);
|
navigationView.setCheckedItem(R.id.nav_settings);
|
||||||
navigationView.getMenu().performIdentifierAction(R.id.nav_settings, 0);
|
navigationView.getMenu().performIdentifierAction(R.id.nav_settings, 0);
|
||||||
toolbarTitle.setText(R.string.settings);
|
toolbarTitle.setText(R.string.settings);
|
||||||
|
@ -424,7 +422,7 @@ public class MainActivity extends AppCompatActivity
|
||||||
tabLayout.setVisibility(View.VISIBLE);
|
tabLayout.setVisibility(View.VISIBLE);
|
||||||
main_app_container.setVisibility(View.GONE);
|
main_app_container.setVisibility(View.GONE);
|
||||||
final NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
|
final NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
|
||||||
unCheckAllMenuItems(navigationView.getMenu());
|
unCheckAllMenuItems(navigationView);
|
||||||
toot.setVisibility(View.VISIBLE);
|
toot.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
switch (viewPager.getCurrentItem()){
|
switch (viewPager.getCurrentItem()){
|
||||||
|
@ -526,6 +524,7 @@ public class MainActivity extends AppCompatActivity
|
||||||
//Proceeds to update of the authenticated account
|
//Proceeds to update of the authenticated account
|
||||||
if(Helper.isLoggedIn(getApplicationContext()))
|
if(Helper.isLoggedIn(getApplicationContext()))
|
||||||
new UpdateAccountInfoByIDAsyncTask(getApplicationContext(), MainActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
new UpdateAccountInfoByIDAsyncTask(getApplicationContext(), MainActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -537,7 +536,7 @@ public class MainActivity extends AppCompatActivity
|
||||||
// Handle navigation view item clicks here.
|
// Handle navigation view item clicks here.
|
||||||
int id = item.getItemId();
|
int id = item.getItemId();
|
||||||
final NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
|
final NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
|
||||||
unCheckAllMenuItems(navigationView.getMenu());
|
unCheckAllMenuItems(navigationView);
|
||||||
item.setChecked(true);
|
item.setChecked(true);
|
||||||
//Remove the search bar
|
//Remove the search bar
|
||||||
if( !toolbar_search.isIconified() ) {
|
if( !toolbar_search.isIconified() ) {
|
||||||
|
|
|
@ -28,7 +28,6 @@ import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.util.Log;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
|
@ -1029,21 +1029,21 @@ public class Helper {
|
||||||
int matchEnd = matcher.end();
|
int matchEnd = matcher.end();
|
||||||
final String url = spannableString.toString().substring(matchStart, matchEnd);
|
final String url = spannableString.toString().substring(matchStart, matchEnd);
|
||||||
spannableString.setSpan(new ClickableSpan() {
|
spannableString.setSpan(new ClickableSpan() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View textView) {
|
public void onClick(View textView) {
|
||||||
Intent intent = new Intent(context, WebviewActivity.class);
|
Intent intent = new Intent(context, WebviewActivity.class);
|
||||||
Bundle b = new Bundle();
|
Bundle b = new Bundle();
|
||||||
b.putString("url", url);
|
b.putString("url", url);
|
||||||
intent.putExtras(b);
|
intent.putExtras(b);
|
||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void updateDrawState(TextPaint ds) {
|
public void updateDrawState(TextPaint ds) {
|
||||||
super.updateDrawState(ds);
|
super.updateDrawState(ds);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
matchStart, matchEnd,
|
matchStart, matchEnd,
|
||||||
Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1057,21 +1057,21 @@ public class Helper {
|
||||||
int startPosition = spannableString.toString().indexOf(targetedAccount);
|
int startPosition = spannableString.toString().indexOf(targetedAccount);
|
||||||
int endPosition = spannableString.toString().lastIndexOf(targetedAccount) + targetedAccount.length();
|
int endPosition = spannableString.toString().lastIndexOf(targetedAccount) + targetedAccount.length();
|
||||||
spannableString.setSpan(new ClickableSpan() {
|
spannableString.setSpan(new ClickableSpan() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View textView) {
|
public void onClick(View textView) {
|
||||||
Intent intent = new Intent(context, ShowAccountActivity.class);
|
Intent intent = new Intent(context, ShowAccountActivity.class);
|
||||||
Bundle b = new Bundle();
|
Bundle b = new Bundle();
|
||||||
b.putString("accountId", mention.getId());
|
b.putString("accountId", mention.getId());
|
||||||
intent.putExtras(b);
|
intent.putExtras(b);
|
||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void updateDrawState(TextPaint ds) {
|
public void updateDrawState(TextPaint ds) {
|
||||||
super.updateDrawState(ds);
|
super.updateDrawState(ds);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
startPosition, endPosition,
|
startPosition, endPosition,
|
||||||
Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1373,12 +1373,19 @@ public class Helper {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void unCheckAllMenuItems(@NonNull final Menu menu) {
|
|
||||||
|
|
||||||
|
public static void unCheckAllMenuItems(NavigationView navigationView){
|
||||||
|
navigationView.setCheckedItem(R.id.menu_none);
|
||||||
|
unCheckAllMenuItemsRec(navigationView.getMenu());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void unCheckAllMenuItemsRec(@NonNull final Menu menu) {
|
||||||
int size = menu.size();
|
int size = menu.size();
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
final MenuItem item = menu.getItem(i);
|
final MenuItem item = menu.getItem(i);
|
||||||
if(item.hasSubMenu()) {
|
if(item.hasSubMenu()) {
|
||||||
unCheckAllMenuItems(item.getSubMenu());
|
unCheckAllMenuItemsRec(item.getSubMenu());
|
||||||
} else {
|
} else {
|
||||||
item.setChecked(false);
|
item.setChecked(false);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +1,24 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
|
||||||
<group android:checkableBehavior="single">
|
<group android:checkableBehavior="single">
|
||||||
<item android:id="@+id/nav_account_list"
|
<item android:id="@+id/nav_account_list"
|
||||||
android:visible="false"
|
android:visible="false"
|
||||||
android:title="@string/accounts">
|
android:title="@string/accounts">
|
||||||
<menu /></item>
|
<menu /></item>
|
||||||
</group>
|
</group>
|
||||||
<group android:checkableBehavior="single">
|
<group>
|
||||||
<item
|
<item
|
||||||
android:title="@string/communication_menu_title"
|
android:title="@string/communication_menu_title"
|
||||||
android:id="@+id/nav_main_com"
|
android:id="@+id/nav_main_com"
|
||||||
>
|
>
|
||||||
<menu>
|
<menu>
|
||||||
<group android:checkableBehavior="single">
|
<group android:checkableBehavior="single">
|
||||||
|
<item
|
||||||
|
android:id="@+id/menu_none"
|
||||||
|
android:title=""
|
||||||
|
android:visible="false"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/nav_home"
|
android:id="@+id/nav_home"
|
||||||
android:icon="@drawable/ic_action_home"
|
android:icon="@drawable/ic_action_home"
|
||||||
|
|
Loading…
Reference in New Issue