Move general settings to db
This commit is contained in:
parent
a10afd7c8e
commit
25446491ac
|
@ -23,6 +23,7 @@ import org.mian.gitnex.database.api.BaseApi;
|
|||
import org.mian.gitnex.database.api.UserAccountsApi;
|
||||
import org.mian.gitnex.database.models.UserAccount;
|
||||
import org.mian.gitnex.databinding.ActivityDeeplinksBinding;
|
||||
import org.mian.gitnex.helpers.AppDatabaseSettings;
|
||||
import org.mian.gitnex.helpers.AppUtil;
|
||||
import org.mian.gitnex.helpers.contexts.IssueContext;
|
||||
import org.mian.gitnex.helpers.contexts.RepositoryContext;
|
||||
|
@ -675,7 +676,9 @@ public class DeepLinksActivity extends BaseActivity {
|
|||
private void showNoActionButtons() {
|
||||
viewBinding.progressBar.setVisibility(View.GONE);
|
||||
|
||||
switch (tinyDB.getInt("defaultScreenId")) {
|
||||
switch (Integer.parseInt(
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
ctx, AppDatabaseSettings.APP_LINK_HANDLER_KEY))) {
|
||||
case 1: // repos
|
||||
mainIntent.putExtra("launchFragmentByLinkHandler", "repos");
|
||||
ctx.startActivity(mainIntent);
|
||||
|
@ -708,7 +711,10 @@ public class DeepLinksActivity extends BaseActivity {
|
|||
|
||||
viewBinding.repository.setOnClickListener(
|
||||
repository -> {
|
||||
tinyDB.putInt("defaultScreenId", 1);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx,
|
||||
String.valueOf(1),
|
||||
AppDatabaseSettings.APP_LINK_HANDLER_KEY);
|
||||
mainIntent.putExtra("launchFragmentByLinkHandler", "repos");
|
||||
ctx.startActivity(mainIntent);
|
||||
finish();
|
||||
|
@ -716,7 +722,10 @@ public class DeepLinksActivity extends BaseActivity {
|
|||
|
||||
viewBinding.organization.setOnClickListener(
|
||||
organization -> {
|
||||
tinyDB.putInt("defaultScreenId", 2);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx,
|
||||
String.valueOf(2),
|
||||
AppDatabaseSettings.APP_LINK_HANDLER_KEY);
|
||||
mainIntent.putExtra("launchFragmentByLinkHandler", "org");
|
||||
ctx.startActivity(mainIntent);
|
||||
finish();
|
||||
|
@ -724,7 +733,10 @@ public class DeepLinksActivity extends BaseActivity {
|
|||
|
||||
viewBinding.notification.setOnClickListener(
|
||||
notification -> {
|
||||
tinyDB.putInt("defaultScreenId", 3);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx,
|
||||
String.valueOf(3),
|
||||
AppDatabaseSettings.APP_LINK_HANDLER_KEY);
|
||||
mainIntent.putExtra("launchFragmentByLinkHandler", "notification");
|
||||
ctx.startActivity(mainIntent);
|
||||
finish();
|
||||
|
@ -732,7 +744,10 @@ public class DeepLinksActivity extends BaseActivity {
|
|||
|
||||
viewBinding.explore.setOnClickListener(
|
||||
explore -> {
|
||||
tinyDB.putInt("defaultScreenId", 4);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx,
|
||||
String.valueOf(4),
|
||||
AppDatabaseSettings.APP_LINK_HANDLER_KEY);
|
||||
mainIntent.putExtra("launchFragmentByLinkHandler", "explore");
|
||||
ctx.startActivity(mainIntent);
|
||||
finish();
|
||||
|
@ -740,7 +755,10 @@ public class DeepLinksActivity extends BaseActivity {
|
|||
|
||||
viewBinding.launchApp2.setOnClickListener(
|
||||
launchApp2 -> {
|
||||
tinyDB.putInt("defaultScreenId", 0);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx,
|
||||
String.valueOf(0),
|
||||
AppDatabaseSettings.APP_LINK_HANDLER_KEY);
|
||||
ctx.startActivity(mainIntent);
|
||||
finish();
|
||||
});
|
||||
|
|
|
@ -10,6 +10,7 @@ import android.view.MenuItem;
|
|||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import androidx.activity.OnBackPressedCallback;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.ActionBarDrawerToggle;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
@ -54,6 +55,7 @@ import org.mian.gitnex.fragments.SettingsFragment;
|
|||
import org.mian.gitnex.fragments.StarredRepositoriesFragment;
|
||||
import org.mian.gitnex.fragments.WatchedRepositoriesFragment;
|
||||
import org.mian.gitnex.helpers.AlertDialogs;
|
||||
import org.mian.gitnex.helpers.AppDatabaseSettings;
|
||||
import org.mian.gitnex.helpers.AppUtil;
|
||||
import org.mian.gitnex.helpers.ChangeLog;
|
||||
import org.mian.gitnex.helpers.RoundedTransformation;
|
||||
|
@ -228,7 +230,7 @@ public class MainActivity extends BaseActivity
|
|||
.observe(
|
||||
(AppCompatActivity) ctx,
|
||||
userAccounts -> {
|
||||
if (userAccounts.size() > 0) {
|
||||
if (!userAccounts.isEmpty()) {
|
||||
userAccountsList.clear();
|
||||
userAccountsList.addAll(userAccounts);
|
||||
navRecyclerViewUserAccounts.setAdapter(
|
||||
|
@ -246,15 +248,15 @@ public class MainActivity extends BaseActivity
|
|||
String userFullNameNav = getAccount().getFullName();
|
||||
String userAvatarNav = getAccount().getUserInfo().getAvatarUrl();
|
||||
|
||||
if (!userEmailNav.equals("")) {
|
||||
if (!userEmailNav.isEmpty()) {
|
||||
userEmail.setText(userEmailNav);
|
||||
}
|
||||
|
||||
if (!userFullNameNav.equals("")) {
|
||||
if (!userFullNameNav.isEmpty()) {
|
||||
userFullName.setText(Html.fromHtml(userFullNameNav));
|
||||
}
|
||||
|
||||
if (!userAvatarNav.equals("")) {
|
||||
if (!userAvatarNav.isEmpty()) {
|
||||
|
||||
int avatarRadius = AppUtil.getPixelsFromDensity(ctx, 60);
|
||||
|
||||
|
@ -400,13 +402,9 @@ public class MainActivity extends BaseActivity
|
|||
|
||||
if (savedInstanceState == null) {
|
||||
|
||||
if (!getAccount().requiresVersion("1.12.3")) {
|
||||
if (tinyDB.getInt("homeScreenId", 0) == 7) {
|
||||
tinyDB.putInt("homeScreenId", 0);
|
||||
}
|
||||
}
|
||||
|
||||
switch (tinyDB.getInt("homeScreenId", 0)) {
|
||||
switch (Integer.parseInt(
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
ctx, AppDatabaseSettings.APP_HOME_SCREEN_KEY))) {
|
||||
case 1:
|
||||
toolbarTitle.setText(getResources().getString(R.string.pageTitleStarredRepos));
|
||||
getSupportFragmentManager()
|
||||
|
@ -566,6 +564,17 @@ public class MainActivity extends BaseActivity
|
|||
ChangeLog changelogDialog = new ChangeLog(this);
|
||||
changelogDialog.showDialog();
|
||||
}
|
||||
|
||||
OnBackPressedCallback onBackPressedCallback =
|
||||
new OnBackPressedCallback(true) {
|
||||
@Override
|
||||
public void handleOnBackPressed() {
|
||||
if (drawer.isDrawerOpen(GravityCompat.START)) {
|
||||
drawer.closeDrawer(GravityCompat.START);
|
||||
}
|
||||
}
|
||||
};
|
||||
getOnBackPressedDispatcher().addCallback(this, onBackPressedCallback);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -639,18 +648,6 @@ public class MainActivity extends BaseActivity
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
|
||||
if (drawer.isDrawerOpen(GravityCompat.START)) {
|
||||
|
||||
drawer.closeDrawer(GravityCompat.START);
|
||||
} else {
|
||||
|
||||
super.onBackPressed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import java.util.Arrays;
|
|||
import java.util.List;
|
||||
import org.mian.gitnex.R;
|
||||
import org.mian.gitnex.databinding.ActivitySettingsGeneralBinding;
|
||||
import org.mian.gitnex.helpers.AppDatabaseSettings;
|
||||
import org.mian.gitnex.helpers.SnackBar;
|
||||
|
||||
/**
|
||||
|
@ -14,11 +15,9 @@ import org.mian.gitnex.helpers.SnackBar;
|
|||
*/
|
||||
public class SettingsGeneralActivity extends BaseActivity {
|
||||
|
||||
private static int homeScreenSelectedChoice = 0;
|
||||
private static int defaultLinkHandlerScreenSelectedChoice = 0;
|
||||
private static int homeScreenSelectedChoice;
|
||||
private static int defaultLinkHandlerScreenSelectedChoice;
|
||||
private ActivitySettingsGeneralBinding viewBinding;
|
||||
private List<String> homeScreenList;
|
||||
private List<String> linkHandlerDefaultScreen;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
|
@ -31,73 +30,15 @@ public class SettingsGeneralActivity extends BaseActivity {
|
|||
viewBinding.topAppBar.setNavigationOnClickListener(v -> finish());
|
||||
|
||||
// home screen
|
||||
String[] appHomeDefaultScreen = getResources().getStringArray(R.array.appDefaultHomeScreen);
|
||||
|
||||
String[] appHomeDefaultScreenNew =
|
||||
String[] appHomeDefaultScreen =
|
||||
getResources().getStringArray(R.array.appDefaultHomeScreenNew);
|
||||
|
||||
if (getAccount().requiresVersion("1.12.3")) {
|
||||
homeScreenSelectedChoice =
|
||||
Integer.parseInt(
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
ctx, AppDatabaseSettings.APP_HOME_SCREEN_KEY));
|
||||
|
||||
appHomeDefaultScreen = appHomeDefaultScreenNew;
|
||||
}
|
||||
|
||||
homeScreenList = new ArrayList<>(Arrays.asList(appHomeDefaultScreen));
|
||||
|
||||
if (!getAccount().requiresVersion("1.14.0")) {
|
||||
homeScreenList.remove(8);
|
||||
}
|
||||
|
||||
String[] homeScreenArray = new String[homeScreenList.size()];
|
||||
homeScreenList.toArray(homeScreenArray);
|
||||
|
||||
if (homeScreenSelectedChoice == 0) {
|
||||
|
||||
homeScreenSelectedChoice = tinyDB.getInt("homeScreenId", 0);
|
||||
viewBinding.homeScreenSelected.setText(getResources().getString(R.string.navMyRepos));
|
||||
}
|
||||
|
||||
if (homeScreenSelectedChoice == 1) {
|
||||
|
||||
viewBinding.homeScreenSelected.setText(
|
||||
getResources().getString(R.string.pageTitleStarredRepos));
|
||||
} else if (homeScreenSelectedChoice == 2) {
|
||||
|
||||
viewBinding.homeScreenSelected.setText(getResources().getString(R.string.navOrg));
|
||||
} else if (homeScreenSelectedChoice == 3) {
|
||||
|
||||
viewBinding.homeScreenSelected.setText(getResources().getString(R.string.navRepos));
|
||||
} else if (homeScreenSelectedChoice == 4) {
|
||||
|
||||
viewBinding.homeScreenSelected.setText(getResources().getString(R.string.navAccount));
|
||||
} else if (homeScreenSelectedChoice == 5) {
|
||||
|
||||
viewBinding.homeScreenSelected.setText(
|
||||
getResources().getString(R.string.pageTitleExplore));
|
||||
} else if (homeScreenSelectedChoice == 6) {
|
||||
|
||||
viewBinding.homeScreenSelected.setText(getResources().getString(R.string.titleDrafts));
|
||||
} else if (homeScreenSelectedChoice == 7) {
|
||||
|
||||
viewBinding.homeScreenSelected.setText(
|
||||
getResources().getString(R.string.pageTitleNotifications));
|
||||
} else if (homeScreenSelectedChoice == 8) {
|
||||
|
||||
viewBinding.homeScreenSelected.setText(getResources().getString(R.string.navMyIssues));
|
||||
} else if (homeScreenSelectedChoice == 9) {
|
||||
|
||||
viewBinding.homeScreenSelected.setText(
|
||||
getResources().getString(R.string.navMostVisited));
|
||||
} else if (homeScreenSelectedChoice == 10) {
|
||||
|
||||
viewBinding.homeScreenSelected.setText(getResources().getString(R.string.navNotes));
|
||||
} else if (homeScreenSelectedChoice == 11) {
|
||||
|
||||
viewBinding.homeScreenSelected.setText(getResources().getString(R.string.dashboard));
|
||||
} else if (homeScreenSelectedChoice == 12) {
|
||||
|
||||
viewBinding.homeScreenSelected.setText(
|
||||
getResources().getString(R.string.navWatchedRepositories));
|
||||
}
|
||||
viewBinding.homeScreenSelected.setText(appHomeDefaultScreen[homeScreenSelectedChoice]);
|
||||
|
||||
viewBinding.homeScreenFrame.setOnClickListener(
|
||||
setDefaultHomeScreen -> {
|
||||
|
@ -106,13 +47,17 @@ public class SettingsGeneralActivity extends BaseActivity {
|
|||
.setTitle(R.string.settingsHomeScreenSelectorDialogTitle)
|
||||
.setCancelable(homeScreenSelectedChoice != -1)
|
||||
.setSingleChoiceItems(
|
||||
homeScreenArray,
|
||||
appHomeDefaultScreen,
|
||||
homeScreenSelectedChoice,
|
||||
(dialogInterfaceHomeScreen, i) -> {
|
||||
homeScreenSelectedChoice = i;
|
||||
viewBinding.homeScreenSelected.setText(
|
||||
homeScreenArray[i]);
|
||||
tinyDB.putInt("homeScreenId", i);
|
||||
appHomeDefaultScreen[i]);
|
||||
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx,
|
||||
String.valueOf(i),
|
||||
AppDatabaseSettings.APP_HOME_SCREEN_KEY);
|
||||
|
||||
dialogInterfaceHomeScreen.dismiss();
|
||||
SnackBar.success(
|
||||
|
@ -128,12 +73,16 @@ public class SettingsGeneralActivity extends BaseActivity {
|
|||
// link handler
|
||||
String[] linkHandlerDefaultScreenList =
|
||||
getResources().getStringArray(R.array.linkHandlerDefaultScreen);
|
||||
linkHandlerDefaultScreen = new ArrayList<>(Arrays.asList(linkHandlerDefaultScreenList));
|
||||
List<String> linkHandlerDefaultScreen =
|
||||
new ArrayList<>(Arrays.asList(linkHandlerDefaultScreenList));
|
||||
|
||||
String[] linksArray = new String[linkHandlerDefaultScreen.size()];
|
||||
linkHandlerDefaultScreen.toArray(linksArray);
|
||||
|
||||
defaultLinkHandlerScreenSelectedChoice = tinyDB.getInt("defaultScreenId");
|
||||
defaultLinkHandlerScreenSelectedChoice =
|
||||
Integer.parseInt(
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
ctx, AppDatabaseSettings.APP_LINK_HANDLER_KEY));
|
||||
viewBinding.generalDeepLinkSelected.setText(
|
||||
linksArray[defaultLinkHandlerScreenSelectedChoice]);
|
||||
|
||||
|
@ -150,7 +99,11 @@ public class SettingsGeneralActivity extends BaseActivity {
|
|||
defaultLinkHandlerScreenSelectedChoice = i;
|
||||
viewBinding.generalDeepLinkSelected.setText(
|
||||
linksArray[i]);
|
||||
tinyDB.putInt("defaultScreenId", i);
|
||||
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx,
|
||||
String.valueOf(i),
|
||||
AppDatabaseSettings.APP_LINK_HANDLER_KEY);
|
||||
|
||||
dialogInterfaceHomeScreen.dismiss();
|
||||
SnackBar.success(
|
||||
|
@ -163,11 +116,17 @@ public class SettingsGeneralActivity extends BaseActivity {
|
|||
});
|
||||
// link handler
|
||||
|
||||
// custom tabs
|
||||
viewBinding.switchTabs.setChecked(tinyDB.getBoolean("useCustomTabs"));
|
||||
// custom tabs switcher
|
||||
viewBinding.switchTabs.setChecked(
|
||||
Boolean.parseBoolean(
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
ctx, AppDatabaseSettings.APP_CUSTOM_BROWSER_KEY)));
|
||||
viewBinding.switchTabs.setOnCheckedChangeListener(
|
||||
(buttonView, isChecked) -> {
|
||||
tinyDB.putBoolean("useCustomTabs", isChecked);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx,
|
||||
String.valueOf(isChecked),
|
||||
AppDatabaseSettings.APP_CUSTOM_BROWSER_KEY);
|
||||
SnackBar.success(
|
||||
ctx,
|
||||
findViewById(android.R.id.content),
|
||||
|
@ -175,16 +134,19 @@ public class SettingsGeneralActivity extends BaseActivity {
|
|||
});
|
||||
viewBinding.customTabsFrame.setOnClickListener(
|
||||
v -> viewBinding.switchTabs.setChecked(!viewBinding.switchTabs.isChecked()));
|
||||
// custom tabs
|
||||
// custom tabs switcher
|
||||
|
||||
// enable drafts deletion
|
||||
// drafts deletion switcher
|
||||
viewBinding.commentsDeletionSwitch.setChecked(
|
||||
tinyDB.getBoolean("draftsCommentsDeletionEnabled", true));
|
||||
|
||||
// delete comments on submit switcher
|
||||
Boolean.parseBoolean(
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
ctx, AppDatabaseSettings.APP_DRAFTS_DELETION_KEY)));
|
||||
viewBinding.commentsDeletionSwitch.setOnCheckedChangeListener(
|
||||
(buttonView, isChecked) -> {
|
||||
tinyDB.putBoolean("draftsCommentsDeletionEnabled", isChecked);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx,
|
||||
String.valueOf(isChecked),
|
||||
AppDatabaseSettings.APP_DRAFTS_DELETION_KEY);
|
||||
SnackBar.success(
|
||||
ctx,
|
||||
findViewById(android.R.id.content),
|
||||
|
@ -194,12 +156,19 @@ public class SettingsGeneralActivity extends BaseActivity {
|
|||
v ->
|
||||
viewBinding.commentsDeletionSwitch.setChecked(
|
||||
!viewBinding.commentsDeletionSwitch.isChecked()));
|
||||
// enable drafts deletion
|
||||
// drafts deletion switcher
|
||||
|
||||
// crash reports switcher
|
||||
viewBinding.crashReportsSwitch.setChecked(
|
||||
Boolean.parseBoolean(
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
ctx, AppDatabaseSettings.APP_CRASH_REPORTS_KEY)));
|
||||
viewBinding.crashReportsSwitch.setOnCheckedChangeListener(
|
||||
(buttonView, isChecked) -> {
|
||||
tinyDB.putBoolean("crashReportingEnabled", isChecked);
|
||||
AppDatabaseSettings.updateSettingsValue(
|
||||
ctx,
|
||||
String.valueOf(isChecked),
|
||||
AppDatabaseSettings.APP_CRASH_REPORTS_KEY);
|
||||
SnackBar.success(
|
||||
ctx,
|
||||
findViewById(android.R.id.content),
|
||||
|
|
|
@ -56,7 +56,9 @@ public class MainApplication extends Application {
|
|||
|
||||
tinyDB = TinyDB.getInstance(context);
|
||||
|
||||
if (tinyDB.getBoolean("crashReportingEnabled", true)) {
|
||||
if (Boolean.parseBoolean(
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
context, AppDatabaseSettings.APP_CRASH_REPORTS_KEY))) {
|
||||
|
||||
CoreConfigurationBuilder ACRABuilder = new CoreConfigurationBuilder();
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ import org.mian.gitnex.activities.MainActivity;
|
|||
import org.mian.gitnex.database.api.BaseApi;
|
||||
import org.mian.gitnex.database.api.DraftsApi;
|
||||
import org.mian.gitnex.databinding.BottomSheetReplyLayoutBinding;
|
||||
import org.mian.gitnex.helpers.AppDatabaseSettings;
|
||||
import org.mian.gitnex.helpers.Constants;
|
||||
import org.mian.gitnex.helpers.TinyDB;
|
||||
import org.mian.gitnex.helpers.Toasty;
|
||||
|
@ -202,9 +203,12 @@ public class BottomSheetReplyFragment extends BottomSheetDialogFragment {
|
|||
getString(R.string.commentSuccess));
|
||||
|
||||
if (draftId != 0
|
||||
&& tinyDB.getBoolean(
|
||||
"draftsCommentsDeletionEnabled",
|
||||
true)) {
|
||||
&& Boolean.parseBoolean(
|
||||
AppDatabaseSettings
|
||||
.getSettingsValue(
|
||||
getContext(),
|
||||
AppDatabaseSettings
|
||||
.APP_DRAFTS_DELETION_KEY))) {
|
||||
draftsApi.deleteSingleDraft((int) draftId);
|
||||
}
|
||||
|
||||
|
@ -238,9 +242,12 @@ public class BottomSheetReplyFragment extends BottomSheetDialogFragment {
|
|||
if (status == ActionResult.Status.SUCCESS) {
|
||||
|
||||
if (draftId != 0
|
||||
&& tinyDB.getBoolean(
|
||||
"draftsCommentsDeletionEnabled",
|
||||
true)) {
|
||||
&& Boolean.parseBoolean(
|
||||
AppDatabaseSettings
|
||||
.getSettingsValue(
|
||||
getContext(),
|
||||
AppDatabaseSettings
|
||||
.APP_DRAFTS_DELETION_KEY))) {
|
||||
draftsApi.deleteSingleDraft((int) draftId);
|
||||
}
|
||||
|
||||
|
|
|
@ -540,10 +540,10 @@ public class AppUtil {
|
|||
|
||||
public static void openUrlInBrowser(Context context, String url) {
|
||||
|
||||
TinyDB tinyDB = TinyDB.getInstance(context);
|
||||
|
||||
Intent i;
|
||||
if (tinyDB.getBoolean("useCustomTabs")) {
|
||||
if (Boolean.parseBoolean(
|
||||
AppDatabaseSettings.getSettingsValue(
|
||||
context, AppDatabaseSettings.APP_CUSTOM_BROWSER_KEY))) {
|
||||
i =
|
||||
new CustomTabsIntent.Builder()
|
||||
.setDefaultColorSchemeParams(
|
||||
|
|
Loading…
Reference in New Issue