use of androidx.appcompat.app.ActionBarDrawerToggle in project Gadgetbridge by Freeyourgadget.
the class ControlCenterv2 method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
AbstractGBActivity.init(this, AbstractGBActivity.NO_ACTIONBAR);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_controlcenterv2);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.controlcenter_navigation_drawer_open, R.string.controlcenter_navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
// end of material design boilerplate
deviceManager = ((GBApplication) getApplication()).getDeviceManager();
deviceListView = findViewById(R.id.deviceListView);
deviceListView.setHasFixedSize(true);
deviceListView.setLayoutManager(new LinearLayoutManager(this));
deviceList = deviceManager.getDevices();
mGBDeviceAdapter = new GBDeviceAdapterv2(this, deviceList, deviceActivityHashMap);
// get activity data asynchronously, this fills the deviceActivityHashMap
// and calls refreshPairedDevices() → notifyDataSetChanged
createRefreshTask("get activity data", getApplication()).execute();
deviceListView.setAdapter(this.mGBDeviceAdapter);
fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
launchDiscoveryActivity();
}
});
showFabIfNeccessary();
/* uncomment to enable fixed-swipe to reveal more actions
ItemTouchHelper swipeToDismissTouchHelper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(
ItemTouchHelper.LEFT , ItemTouchHelper.RIGHT) {
@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
if(dX>50)
dX = 50;
super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
}
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
GB.toast(getBaseContext(), "onMove", Toast.LENGTH_LONG, GB.ERROR);
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
GB.toast(getBaseContext(), "onSwiped", Toast.LENGTH_LONG, GB.ERROR);
}
@Override
public void onChildDrawOver(Canvas c, RecyclerView recyclerView,
RecyclerView.ViewHolder viewHolder, float dX, float dY,
int actionState, boolean isCurrentlyActive) {
}
});
swipeToDismissTouchHelper.attachToRecyclerView(deviceListView);
*/
registerForContextMenu(deviceListView);
IntentFilter filterLocal = new IntentFilter();
filterLocal.addAction(GBApplication.ACTION_LANGUAGE_CHANGE);
filterLocal.addAction(GBApplication.ACTION_QUIT);
filterLocal.addAction(GBApplication.ACTION_NEW_DATA);
filterLocal.addAction(DeviceManager.ACTION_DEVICES_CHANGED);
filterLocal.addAction(DeviceService.ACTION_REALTIME_SAMPLES);
LocalBroadcastManager.getInstance(this).registerReceiver(mReceiver, filterLocal);
refreshPairedDevices();
/*
* Ask for permission to intercept notifications on first run.
*/
Prefs prefs = GBApplication.getPrefs();
pesterWithPermissions = prefs.getBoolean("permission_pestering", true);
Set<String> set = NotificationManagerCompat.getEnabledListenerPackages(this);
if (pesterWithPermissions) {
if (!set.contains(this.getPackageName())) {
// If notification listener access hasn't been granted
Intent enableIntent = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS");
startActivity(enableIntent);
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
checkAndRequestPermissions();
}
ChangeLog cl = createChangeLog();
if (cl.isFirstRun()) {
try {
cl.getLogDialog().show();
} catch (Exception ignored) {
GB.toast(getBaseContext(), "Error showing Changelog", Toast.LENGTH_LONG, GB.ERROR);
}
}
GBApplication.deviceService().start();
if (GB.isBluetoothEnabled() && deviceList.isEmpty() && Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
startActivity(new Intent(this, DiscoveryActivity.class));
} else {
GBApplication.deviceService().requestDeviceInfo();
}
}
use of androidx.appcompat.app.ActionBarDrawerToggle in project boilerplate by koush.
the class DrawerActivity method resetDrawerToggle.
private void resetDrawerToggle() {
getDrawer().setDrawerListener(drawerToggle = new ActionBarDrawerToggle(this, getDrawer(), getDrawerOpenString(), getDrawerCloseString()) {
// DecelerateInterpolator interpolator = new DecelerateInterpolator();
ArgbEvaluator evaluator = new ArgbEvaluator();
boolean hasOpened;
int originalStatusBarColor;
@Override
public void onDrawerStateChanged(int newState) {
super.onDrawerStateChanged(newState);
if (newState == DrawerLayout.STATE_DRAGGING && !hasOpened) {
hasOpened = true;
originalStatusBarColor = WindowChromeUtils.getStatusBarColor(getWindow());
}
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, slideOffset);
// and don't erroneously translate this stuff.
if (!getDrawer().isDrawerVisible(Gravity.LEFT))
return;
// View content = getDrawer().getChildAt(0);
// View drawer = getDrawer().getChildAt(1);
// content.setTranslationX(Math.min(content.getMeasuredWidth(), drawer.getMeasuredWidth()) / 3 * interpolator.getInterpolation(slideOffset));
onDrawerOpen();
if (hasOpened)
WindowChromeUtils.setStatusBarColor(getWindow(), (int) evaluator.evaluate(slideOffset, originalStatusBarColor, 0x4D000000));
}
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
if (hasOpened) {
WindowChromeUtils.setStatusBarColor(getWindow(), originalStatusBarColor);
}
if (isFinishing())
return;
DrawerActivity.this.onDrawerClosed();
}
});
drawerToggle.syncState();
}
use of androidx.appcompat.app.ActionBarDrawerToggle in project BGARefreshLayout-Android by bingoogolapple.
the class MainActivity method setUpNavDrawer.
private void setUpNavDrawer() {
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, R.string.app_name, R.string.app_name);
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerToggle.syncState();
}
use of androidx.appcompat.app.ActionBarDrawerToggle in project Slide by ccrama.
the class MainActivity method doDrawer.
public void doDrawer() {
drawerSubList = (ListView) findViewById(R.id.drawerlistview);
drawerSubList.setDividerHeight(0);
drawerSubList.setDescendantFocusability(ListView.FOCUS_BEFORE_DESCENDANTS);
final LayoutInflater inflater = getLayoutInflater();
final View header;
if (Authentication.isLoggedIn && Authentication.didOnline) {
header = inflater.inflate(R.layout.drawer_loggedin, drawerSubList, false);
headerMain = header;
hea = header.findViewById(R.id.back);
drawerSubList.addHeaderView(header, null, false);
((TextView) header.findViewById(R.id.name)).setText(Authentication.name);
header.findViewById(R.id.multi).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
if (runAfterLoad == null) {
Intent inte = new Intent(MainActivity.this, MultiredditOverview.class);
MainActivity.this.startActivity(inte);
}
}
});
header.findViewById(R.id.multi).setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
new MaterialDialog.Builder(MainActivity.this).inputRange(3, 20).alwaysCallInputCallback().input(getString(R.string.user_enter), null, new MaterialDialog.InputCallback() {
@Override
public void onInput(@NonNull MaterialDialog dialog, CharSequence input) {
final EditText editText = dialog.getInputEditText();
EditTextValidator.validateUsername(editText);
if (input.length() >= 3 && input.length() <= 20) {
dialog.getActionButton(DialogAction.POSITIVE).setEnabled(true);
}
}
}).positiveText(R.string.user_btn_gotomultis).onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
if (runAfterLoad == null) {
Intent inte = new Intent(MainActivity.this, MultiredditOverview.class);
inte.putExtra(Profile.EXTRA_PROFILE, dialog.getInputEditText().getText().toString());
MainActivity.this.startActivity(inte);
}
}
}).negativeText(R.string.btn_cancel).show();
return true;
}
});
header.findViewById(R.id.discover).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Intent inte = new Intent(MainActivity.this, Discover.class);
MainActivity.this.startActivity(inte);
}
});
header.findViewById(R.id.prof_click).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Intent inte = new Intent(MainActivity.this, Profile.class);
inte.putExtra(Profile.EXTRA_PROFILE, Authentication.name);
MainActivity.this.startActivity(inte);
}
});
header.findViewById(R.id.saved).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Intent inte = new Intent(MainActivity.this, Profile.class);
inte.putExtra(Profile.EXTRA_PROFILE, Authentication.name);
inte.putExtra(Profile.EXTRA_SAVED, true);
MainActivity.this.startActivity(inte);
}
});
header.findViewById(R.id.later).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Intent inte = new Intent(MainActivity.this, PostReadLater.class);
MainActivity.this.startActivity(inte);
}
});
header.findViewById(R.id.history).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Intent inte = new Intent(MainActivity.this, Profile.class);
inte.putExtra(Profile.EXTRA_PROFILE, Authentication.name);
inte.putExtra(Profile.EXTRA_HISTORY, true);
MainActivity.this.startActivity(inte);
}
});
header.findViewById(R.id.commented).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Intent inte = new Intent(MainActivity.this, Profile.class);
inte.putExtra(Profile.EXTRA_PROFILE, Authentication.name);
inte.putExtra(Profile.EXTRA_COMMENT, true);
MainActivity.this.startActivity(inte);
}
});
header.findViewById(R.id.submitted).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Intent inte = new Intent(MainActivity.this, Profile.class);
inte.putExtra(Profile.EXTRA_PROFILE, Authentication.name);
inte.putExtra(Profile.EXTRA_SUBMIT, true);
MainActivity.this.startActivity(inte);
}
});
header.findViewById(R.id.upvoted).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Intent inte = new Intent(MainActivity.this, Profile.class);
inte.putExtra(Profile.EXTRA_PROFILE, Authentication.name);
inte.putExtra(Profile.EXTRA_UPVOTE, true);
MainActivity.this.startActivity(inte);
}
});
/**
* If the user is a known mod, show the "Moderation" drawer item quickly to
* stop the UI from jumping
*/
if (modOf != null && !modOf.isEmpty() && Authentication.mod) {
header.findViewById(R.id.mod).setVisibility(View.VISIBLE);
}
// update notification badge
final LinearLayout profStuff = header.findViewById(R.id.accountsarea);
profStuff.setVisibility(View.GONE);
findViewById(R.id.back).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (profStuff.getVisibility() == View.GONE) {
expand(profStuff);
header.setContentDescription(getResources().getString(R.string.btn_collapse));
AnimatorUtil.flipAnimator(false, header.findViewById(R.id.headerflip)).start();
} else {
collapse(profStuff);
header.setContentDescription(getResources().getString(R.string.btn_expand));
AnimatorUtil.flipAnimator(true, header.findViewById(R.id.headerflip)).start();
}
}
});
for (String s : Authentication.authentication.getStringSet("accounts", new HashSet<String>())) {
if (s.contains(":")) {
accounts.put(s.split(":")[0], s.split(":")[1]);
} else {
accounts.put(s, "");
}
}
final ArrayList<String> keys = new ArrayList<>(accounts.keySet());
final LinearLayout accountList = header.findViewById(R.id.accountsarea);
for (final String accName : keys) {
LogUtil.v(accName);
final View t = getLayoutInflater().inflate(R.layout.account_textview_white, accountList, false);
((TextView) t.findViewById(R.id.name)).setText(accName);
LogUtil.v("Adding click to " + ((TextView) t.findViewById(R.id.name)).getText());
t.findViewById(R.id.remove).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(MainActivity.this).setTitle(R.string.profile_remove).setMessage(R.string.profile_remove_account).setNegativeButton(R.string.btn_delete, (dialog2, which2) -> {
Set<String> accounts2 = Authentication.authentication.getStringSet("accounts", new HashSet<>());
Set<String> done = new HashSet<>();
for (String s : accounts2) {
if (!s.contains(accName)) {
done.add(s);
}
}
Authentication.authentication.edit().putStringSet("accounts", done).commit();
dialog2.dismiss();
accountList.removeView(t);
if (accName.equalsIgnoreCase(Authentication.name)) {
boolean d = false;
for (String s : keys) {
if (!s.equalsIgnoreCase(accName)) {
d = true;
LogUtil.v("Switching to " + s);
for (Map.Entry<String, String> e : accounts.entrySet()) {
LogUtil.v(e.getKey() + ":" + e.getValue());
}
if (accounts.containsKey(s) && !accounts.get(s).isEmpty()) {
Authentication.authentication.edit().putString("lasttoken", accounts.get(s)).remove("backedCreds").commit();
} else {
ArrayList<String> tokens = new ArrayList<>(Authentication.authentication.getStringSet("tokens", new HashSet<>()));
int index = keys.indexOf(s);
if (keys.indexOf(s) > tokens.size()) {
index -= 1;
}
Authentication.authentication.edit().putString("lasttoken", tokens.get(index)).remove("backedCreds").commit();
}
Authentication.name = s;
UserSubscriptions.switchAccounts();
Reddit.forceRestart(MainActivity.this, true);
break;
}
}
if (!d) {
Authentication.name = "LOGGEDOUT";
Authentication.isLoggedIn = false;
Authentication.authentication.edit().remove("lasttoken").remove("backedCreds").commit();
UserSubscriptions.switchAccounts();
Reddit.forceRestart(MainActivity.this, true);
}
} else {
accounts.remove(accName);
keys.remove(accName);
}
}).setPositiveButton(R.string.btn_cancel, null).show();
}
});
t.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String accName = ((TextView) t.findViewById(R.id.name)).getText().toString();
LogUtil.v("Found name is " + accName);
if (!accName.equalsIgnoreCase(Authentication.name)) {
LogUtil.v("Switching to " + accName);
if (!accounts.get(accName).isEmpty()) {
LogUtil.v("Using token " + accounts.get(accName));
Authentication.authentication.edit().putString("lasttoken", accounts.get(accName)).remove("backedCreds").apply();
} else {
ArrayList<String> tokens = new ArrayList<>(Authentication.authentication.getStringSet("tokens", new HashSet<String>()));
Authentication.authentication.edit().putString("lasttoken", tokens.get(keys.indexOf(accName))).remove("backedCreds").apply();
}
Authentication.name = accName;
UserSubscriptions.switchAccounts();
Reddit.forceRestart(MainActivity.this, true);
}
}
});
accountList.addView(t);
}
header.findViewById(R.id.godown).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LinearLayout body = header.findViewById(R.id.expand_profile);
if (body.getVisibility() == View.GONE) {
expand(body);
AnimatorUtil.flipAnimator(false, view).start();
view.findViewById(R.id.godown).setContentDescription(getResources().getString(R.string.btn_collapse));
} else {
collapse(body);
AnimatorUtil.flipAnimator(true, view).start();
view.findViewById(R.id.godown).setContentDescription(getResources().getString(R.string.btn_expand));
}
}
});
header.findViewById(R.id.guest_mode).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View v) {
Authentication.name = "LOGGEDOUT";
Authentication.isLoggedIn = false;
Authentication.authentication.edit().remove("lasttoken").remove("backedCreds").apply();
UserSubscriptions.switchAccounts();
Reddit.forceRestart(MainActivity.this, true);
}
});
header.findViewById(R.id.add).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Intent inte = new Intent(MainActivity.this, Login.class);
MainActivity.this.startActivity(inte);
}
});
header.findViewById(R.id.offline).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Reddit.appRestart.edit().putBoolean("forceoffline", true).commit();
Reddit.forceRestart(MainActivity.this, false);
}
});
header.findViewById(R.id.inbox).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Intent inte = new Intent(MainActivity.this, Inbox.class);
MainActivity.this.startActivityForResult(inte, INBOX_RESULT);
}
});
headerMain = header;
if (runAfterLoad == null) {
new AsyncNotificationBadge().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
} else if (Authentication.didOnline) {
header = inflater.inflate(R.layout.drawer_loggedout, drawerSubList, false);
drawerSubList.addHeaderView(header, null, false);
headerMain = header;
hea = header.findViewById(R.id.back);
final LinearLayout profStuff = header.findViewById(R.id.accountsarea);
profStuff.setVisibility(View.GONE);
findViewById(R.id.back).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (profStuff.getVisibility() == View.GONE) {
expand(profStuff);
AnimatorUtil.flipAnimator(false, header.findViewById(R.id.headerflip)).start();
header.findViewById(R.id.headerflip).setContentDescription(getResources().getString(R.string.btn_collapse));
} else {
collapse(profStuff);
AnimatorUtil.flipAnimator(true, header.findViewById(R.id.headerflip)).start();
header.findViewById(R.id.headerflip).setContentDescription(getResources().getString(R.string.btn_expand));
}
}
});
final HashMap<String, String> accounts = new HashMap<>();
for (String s : Authentication.authentication.getStringSet("accounts", new HashSet<String>())) {
if (s.contains(":")) {
accounts.put(s.split(":")[0], s.split(":")[1]);
} else {
accounts.put(s, "");
}
}
final ArrayList<String> keys = new ArrayList<>(accounts.keySet());
final LinearLayout accountList = header.findViewById(R.id.accountsarea);
for (final String accName : keys) {
LogUtil.v(accName);
final View t = getLayoutInflater().inflate(R.layout.account_textview_white, accountList, false);
((TextView) t.findViewById(R.id.name)).setText(accName);
t.findViewById(R.id.remove).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(MainActivity.this).setTitle(R.string.profile_remove).setMessage(R.string.profile_remove_account).setNegativeButton(R.string.btn_delete, (dialog2, which2) -> {
Set<String> accounts2 = Authentication.authentication.getStringSet("accounts", new HashSet<>());
Set<String> done = new HashSet<>();
for (String s : accounts2) {
if (!s.contains(accName)) {
done.add(s);
}
}
Authentication.authentication.edit().putStringSet("accounts", done).commit();
dialog2.dismiss();
accountList.removeView(t);
if (accName.equalsIgnoreCase(Authentication.name)) {
boolean d = false;
for (String s : keys) {
if (!s.equalsIgnoreCase(accName)) {
d = true;
LogUtil.v("Switching to " + s);
if (!accounts.get(s).isEmpty()) {
Authentication.authentication.edit().putString("lasttoken", accounts.get(s)).remove("backedCreds").commit();
} else {
ArrayList<String> tokens = new ArrayList<>(Authentication.authentication.getStringSet("tokens", new HashSet<>()));
Authentication.authentication.edit().putString("lasttoken", tokens.get(keys.indexOf(s))).remove("backedCreds").commit();
}
Authentication.name = s;
UserSubscriptions.switchAccounts();
Reddit.forceRestart(MainActivity.this, true);
}
}
if (!d) {
Authentication.name = "LOGGEDOUT";
Authentication.isLoggedIn = false;
Authentication.authentication.edit().remove("lasttoken").remove("backedCreds").commit();
UserSubscriptions.switchAccounts();
Reddit.forceRestart(MainActivity.this, true);
}
} else {
accounts.remove(accName);
keys.remove(accName);
}
}).setPositiveButton(R.string.btn_cancel, null).show();
}
});
t.setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View v) {
if (!accName.equalsIgnoreCase(Authentication.name)) {
if (!accounts.get(accName).isEmpty()) {
Authentication.authentication.edit().putString("lasttoken", accounts.get(accName)).remove("backedCreds").commit();
} else {
ArrayList<String> tokens = new ArrayList<>(Authentication.authentication.getStringSet("tokens", new HashSet<String>()));
Authentication.authentication.edit().putString("lasttoken", tokens.get(keys.indexOf(accName))).remove("backedCreds").commit();
}
Authentication.isLoggedIn = true;
Authentication.name = accName;
UserSubscriptions.switchAccounts();
Reddit.forceRestart(MainActivity.this, true);
}
}
});
accountList.addView(t);
}
header.findViewById(R.id.add).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Intent inte = new Intent(MainActivity.this, Login.class);
MainActivity.this.startActivity(inte);
}
});
header.findViewById(R.id.offline).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Reddit.appRestart.edit().putBoolean("forceoffline", true).commit();
Reddit.forceRestart(MainActivity.this, false);
}
});
headerMain = header;
header.findViewById(R.id.multi).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new MaterialDialog.Builder(MainActivity.this).inputRange(3, 20).alwaysCallInputCallback().input(getString(R.string.user_enter), null, new MaterialDialog.InputCallback() {
@Override
public void onInput(@NonNull MaterialDialog dialog, CharSequence input) {
final EditText editText = dialog.getInputEditText();
EditTextValidator.validateUsername(editText);
if (input.length() >= 3 && input.length() <= 20) {
dialog.getActionButton(DialogAction.POSITIVE).setEnabled(true);
}
}
}).positiveText(R.string.user_btn_gotomultis).onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
if (runAfterLoad == null) {
Intent inte = new Intent(MainActivity.this, MultiredditOverview.class);
inte.putExtra(Profile.EXTRA_PROFILE, dialog.getInputEditText().getText().toString());
MainActivity.this.startActivity(inte);
}
}
}).negativeText(R.string.btn_cancel).show();
}
});
} else {
header = inflater.inflate(R.layout.drawer_offline, drawerSubList, false);
headerMain = header;
drawerSubList.addHeaderView(header, null, false);
hea = header.findViewById(R.id.back);
header.findViewById(R.id.online).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Reddit.appRestart.edit().remove("forceoffline").commit();
Reddit.forceRestart(MainActivity.this, false);
}
});
}
final LinearLayout expandSettings = header.findViewById(R.id.expand_settings);
header.findViewById(R.id.godown_settings).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (expandSettings.getVisibility() == View.GONE) {
expand(expandSettings);
header.findViewById(R.id.godown_settings).setContentDescription(getResources().getString(R.string.btn_collapse));
AnimatorUtil.flipAnimator(false, v).start();
} else {
collapse(expandSettings);
header.findViewById(R.id.godown_settings).setContentDescription(getResources().getString(R.string.btn_expand));
AnimatorUtil.flipAnimator(true, v).start();
}
}
});
{
// Set up quick setting toggles
final SwitchCompat toggleNightMode = expandSettings.findViewById(R.id.toggle_night_mode);
if (SettingValues.isPro) {
toggleNightMode.setVisibility(View.VISIBLE);
toggleNightMode.setChecked(inNightMode);
toggleNightMode.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SettingValues.forcedNightModeState = isChecked ? SettingValues.ForcedState.FORCED_ON : SettingValues.ForcedState.FORCED_OFF;
restartTheme();
}
});
}
final SwitchCompat toggleImmersiveMode = expandSettings.findViewById(R.id.toggle_immersive_mode);
toggleImmersiveMode.setChecked(SettingValues.immersiveMode);
toggleImmersiveMode.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SettingValues.immersiveMode = isChecked;
SettingValues.prefs.edit().putBoolean(SettingValues.PREF_IMMERSIVE_MODE, isChecked).apply();
if (isChecked) {
hideDecor();
} else {
showDecor();
}
}
});
final SwitchCompat toggleNSFW = expandSettings.findViewById(R.id.toggle_nsfw);
toggleNSFW.setChecked(SettingValues.showNSFWContent);
toggleNSFW.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SettingValues.showNSFWContent = isChecked;
SettingValues.prefs.edit().putBoolean(SettingValues.PREF_SHOW_NSFW_CONTENT, isChecked).apply();
reloadSubs();
}
});
final SwitchCompat toggleRightThumbnails = expandSettings.findViewById(R.id.toggle_right_thumbnails);
toggleRightThumbnails.setChecked(SettingValues.switchThumb);
toggleRightThumbnails.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SettingValues.switchThumb = isChecked;
SettingValues.prefs.edit().putBoolean(SettingValues.PREF_SWITCH_THUMB, isChecked).apply();
reloadSubs();
}
});
final SwitchCompat toggleReaderMode = expandSettings.findViewById(R.id.toggle_reader_mode);
toggleReaderMode.setChecked(SettingValues.readerMode);
toggleReaderMode.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SettingValues.readerMode = isChecked;
SettingValues.prefs.edit().putBoolean(SettingValues.PREF_READER_MODE, isChecked).apply();
}
});
}
header.findViewById(R.id.manage).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
Intent i = new Intent(MainActivity.this, ManageOfflineContent.class);
startActivity(i);
}
});
if (Authentication.didOnline) {
View support = header.findViewById(R.id.support);
if (SettingValues.isPro) {
support.setVisibility(View.GONE);
} else {
support.setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View view) {
ProUtil.proUpgradeMsg(MainActivity.this, R.string.settings_support_slide).setNegativeButton(R.string.btn_no_thanks, (dialog, whichButton) -> dialog.dismiss()).show();
}
});
}
header.findViewById(R.id.prof).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new MaterialDialog.Builder(MainActivity.this).inputRange(3, 20).alwaysCallInputCallback().input(getString(R.string.user_enter), null, new MaterialDialog.InputCallback() {
@Override
public void onInput(@NonNull MaterialDialog dialog, CharSequence input) {
final EditText editText = dialog.getInputEditText();
EditTextValidator.validateUsername(editText);
if (input.length() >= 3 && input.length() <= 20) {
dialog.getActionButton(DialogAction.POSITIVE).setEnabled(true);
}
}
}).positiveText(R.string.user_btn_goto).onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
Intent inte = new Intent(MainActivity.this, Profile.class);
// noinspection ConstantConditions
inte.putExtra(Profile.EXTRA_PROFILE, dialog.getInputEditText().getText().toString());
MainActivity.this.startActivity(inte);
}
}).negativeText(R.string.btn_cancel).show();
}
});
}
header.findViewById(R.id.settings).setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View v) {
Intent i = new Intent(MainActivity.this, SettingsActivity.class);
startActivity(i);
// Cancel sub loading because exiting the settings will reload it anyway
if (mAsyncGetSubreddit != null)
mAsyncGetSubreddit.cancel(true);
drawerLayout.closeDrawers();
}
});
/* footer.findViewById(R.id.settings).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent inte = new Intent(Overview.this, Setting.class);
Overview.this.startActivityForResult(inte, 3);
}
});*/
final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
final ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle(MainActivity.this, drawerLayout, toolbar, R.string.btn_open, R.string.btn_close) {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
// this disables the animation
super.onDrawerSlide(drawerView, 0);
}
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
if (drawerLayout.isDrawerOpen(GravityCompat.END)) {
int current = pager.getCurrentItem();
if (current == toOpenComments && toOpenComments != 0) {
current -= 1;
}
String compare = usedArray.get(current);
if (compare.equals("random") || compare.equals("myrandom") || compare.equals("randnsfw")) {
if (adapter != null && adapter.getCurrentFragment() != null && ((SubmissionsView) adapter.getCurrentFragment()).adapter.dataSet.subredditRandom != null) {
String sub = ((SubmissionsView) adapter.getCurrentFragment()).adapter.dataSet.subredditRandom;
doSubSidebarNoLoad(sub);
doSubSidebar(sub);
}
} else {
doSubSidebar(usedArray.get(current));
}
}
}
@Override
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
KeyboardUtil.hideKeyboard(MainActivity.this, drawerLayout.getWindowToken(), 0);
}
};
drawerLayout.addDrawerListener(actionBarDrawerToggle);
actionBarDrawerToggle.syncState();
header.findViewById(R.id.back).setBackgroundColor(Palette.getColor("alsdkfjasld"));
accountsArea = header.findViewById(R.id.accountsarea);
if (accountsArea != null) {
accountsArea.setBackgroundColor(Palette.getDarkerColor("alsdkfjasld"));
}
setDrawerSubList();
hideDrawerItems();
}
use of androidx.appcompat.app.ActionBarDrawerToggle in project mopub-android-mediation by mopub.
the class MoPubSampleActivity method setupNavigationDrawer.
private void setupNavigationDrawer(Toolbar toolbar) {
mDrawerLayout = findViewById(R.id.drawer_layout);
final ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
mDrawerLayout.addDrawerListener(toggle);
toggle.syncState();
final NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
Aggregations