From 5e8604f4cbc1e2e55cd1b007d5621294ecbf0a03 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 4 Jan 2020 17:29:28 +0100 Subject: [PATCH] Dragons ahead! --- .../java/eu/faircode/email/ActivitySetup.java | 12 ++++++++ .../eu/faircode/email/FragmentOptions.java | 29 +++++++++++++++++++ .../faircode/email/FragmentOptionsMisc.java | 3 +- .../res/layout/fragment_options_behavior.xml | 14 +-------- .../layout/fragment_options_connection.xml | 14 +-------- .../res/layout/fragment_options_display.xml | 14 +-------- .../main/res/layout/fragment_options_misc.xml | 14 +-------- .../layout/fragment_options_notifications.xml | 14 +-------- .../res/layout/fragment_options_privacy.xml | 14 +-------- .../main/res/layout/fragment_options_send.xml | 14 +-------- .../layout/fragment_options_synchronize.xml | 14 +-------- app/src/main/res/values/strings.xml | 8 +++-- 12 files changed, 57 insertions(+), 107 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java index be62dbea5c..e4ea9df48c 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySetup.java +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -134,6 +134,7 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac static final String ACTION_MANAGE_LOCAL_CONTACTS = BuildConfig.APPLICATION_ID + ".MANAGE_LOCAL_CONTACTS"; static final String ACTION_MANAGE_CERTIFICATES = BuildConfig.APPLICATION_ID + ".MANAGE_CERTIFICATES"; static final String ACTION_IMPORT_CERTIFICATE = BuildConfig.APPLICATION_ID + ".IMPORT_CERTIFICATE"; + static final String ACTION_SETUP_ADVANCED = BuildConfig.APPLICATION_ID + ".SETUP_ADVANCED"; @Override protected void onCreate(Bundle savedInstanceState) { @@ -311,6 +312,7 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac iff.addAction(ACTION_MANAGE_LOCAL_CONTACTS); iff.addAction(ACTION_MANAGE_CERTIFICATES); iff.addAction(ACTION_IMPORT_CERTIFICATE); + iff.addAction(ACTION_SETUP_ADVANCED); lbm.registerReceiver(receiver, iff); } @@ -1209,6 +1211,14 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac startActivityForResult(Helper.getChooser(this, open), REQUEST_IMPORT_CERTIFICATE); } + private void onSetupAdvanced(Intent intent) { + new AlertDialog.Builder(this) + .setTitle(R.string.title_advanced_hint_title) + .setMessage(R.string.title_advanced_hint_message) + .setPositiveButton(android.R.string.ok, null) + .show(); + } + private static Intent getIntentExport() { Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); @@ -1308,6 +1318,8 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac onManageCertificates(intent); else if (ACTION_IMPORT_CERTIFICATE.equals(action)) onImportCertificate(intent); + else if (ACTION_SETUP_ADVANCED.equals(action)) + onSetupAdvanced(intent); } } }; diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java index c9b238b56c..22377fc87d 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptions.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java @@ -19,6 +19,8 @@ package eu.faircode.email; Copyright 2018-2019 by Marcel Bokhorst (M66B) */ +import android.content.Intent; +import android.content.SharedPreferences; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -29,6 +31,8 @@ import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentStatePagerAdapter; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; +import androidx.preference.PreferenceManager; import androidx.viewpager.widget.ViewPager; import com.google.android.material.tabs.TabLayout; @@ -62,6 +66,31 @@ public class FragmentOptions extends FragmentBase { adapter = new PagerAdapter(getChildFragmentManager()); pager.setAdapter(adapter); + pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + // Do nothing + } + + @Override + public void onPageSelected(int position) { + if (position > 0) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + boolean setup_advanced = prefs.getBoolean("setup_advanced", false); + if (!setup_advanced) { + prefs.edit().putBoolean("setup_advanced", true).apply(); + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext()); + lbm.sendBroadcast(new Intent(ActivitySetup.ACTION_SETUP_ADVANCED)); + } + } + } + + @Override + public void onPageScrollStateChanged(int state) { + // Do nothing + } + }); + return view; } diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java index eeaab8c3fd..af44b63481 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java @@ -73,7 +73,8 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc private final static String[] RESET_QUESTIONS = new String[]{ "welcome", "crash_reports_asked", "review_asked", "review_later", "html_always_images", "print_html_confirmed", - "identities_asked", "cc_bcc", "inline_image_hint", "compose_reference", "send_dialog" + "identities_asked", "cc_bcc", "inline_image_hint", "compose_reference", "send_dialog", + "setup_advanced" }; @Override diff --git a/app/src/main/res/layout/fragment_options_behavior.xml b/app/src/main/res/layout/fragment_options_behavior.xml index 6a221a43eb..dbca6deba0 100644 --- a/app/src/main/res/layout/fragment_options_behavior.xml +++ b/app/src/main/res/layout/fragment_options_behavior.xml @@ -12,18 +12,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - - - - - - + app:layout_constraintTop_toTopOf="parent" />