make the profile details activity use the theme of the profile
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Sun, 3 Mar 2019 09:29:38 +0000 (11:29 +0200)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Sun, 3 Mar 2019 09:29:38 +0000 (11:29 +0200)
app/src/main/java/net/ktnx/mobileledger/ui/activity/CrashReportingActivity.java
app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java
app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionActivity.java
app/src/main/java/net/ktnx/mobileledger/ui/activity/ProfileDetailActivity.java
app/src/main/java/net/ktnx/mobileledger/ui/activity/ProfileThemedActivity.java [new file with mode: 0644]

index 911d2ce..c8edc60 100644 (file)
@@ -1,29 +1,20 @@
 package net.ktnx.mobileledger.ui.activity;
 
 import android.os.Bundle;
 package net.ktnx.mobileledger.ui.activity;
 
 import android.os.Bundle;
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.AppCompatActivity;
 import android.util.Log;
 
 import net.ktnx.mobileledger.ui.CrashReportDialogFragment;
 import android.util.Log;
 
 import net.ktnx.mobileledger.ui.CrashReportDialogFragment;
-import net.ktnx.mobileledger.utils.Colors;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
 public abstract class CrashReportingActivity extends AppCompatActivity {
 public abstract class CrashReportingActivity extends AppCompatActivity {
-    protected void setupProfileColors() {
-        Colors.setupTheme(this);
-    }
-    @Override
-    protected void onStart() {
-        super.onStart();
-        Colors.refreshColors(getTheme());
-    }
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        Colors.setupTheme(this);
 
         Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
             @Override
 
         Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
             @Override
index 51ddf6e..c2ee2c6 100644 (file)
@@ -66,7 +66,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.viewpager.widget.ViewPager;
 
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.viewpager.widget.ViewPager;
 
-public class MainActivity extends CrashReportingActivity {
+public class MainActivity extends ProfileThemedActivity {
     private static final String STATE_CURRENT_PAGE = "current_page";
     private static final String BUNDLE_SAVED_STATE = "bundle_savedState";
     DrawerLayout drawer;
     private static final String STATE_CURRENT_PAGE = "current_page";
     private static final String BUNDLE_SAVED_STATE = "bundle_savedState";
     DrawerLayout drawer;
index 7947532..b69710b 100644 (file)
@@ -21,11 +21,6 @@ import android.annotation.SuppressLint;
 import android.database.Cursor;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.database.Cursor;
 import android.os.AsyncTask;
 import android.os.Bundle;
-import com.google.android.material.snackbar.BaseTransientBottomBar;
-import com.google.android.material.floatingactionbutton.FloatingActionButton;
-import com.google.android.material.snackbar.Snackbar;
-import androidx.fragment.app.DialogFragment;
-import androidx.appcompat.widget.Toolbar;
 import android.text.Editable;
 import android.text.InputType;
 import android.text.TextWatcher;
 import android.text.Editable;
 import android.text.InputType;
 import android.text.TextWatcher;
@@ -45,6 +40,10 @@ import android.widget.TableRow;
 import android.widget.TextView;
 import android.widget.Toast;
 
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import com.google.android.material.snackbar.BaseTransientBottomBar;
+import com.google.android.material.snackbar.Snackbar;
+
 import net.ktnx.mobileledger.BuildConfig;
 import net.ktnx.mobileledger.R;
 import net.ktnx.mobileledger.async.DescriptionSelectedCallback;
 import net.ktnx.mobileledger.BuildConfig;
 import net.ktnx.mobileledger.R;
 import net.ktnx.mobileledger.async.DescriptionSelectedCallback;
@@ -66,6 +65,9 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Objects;
 
 import java.util.Locale;
 import java.util.Objects;
 
+import androidx.appcompat.widget.Toolbar;
+import androidx.fragment.app.DialogFragment;
+
 /*
  * TODO: nicer progress while transaction is submitted
  * TODO: reports
 /*
  * TODO: nicer progress while transaction is submitted
  * TODO: reports
@@ -74,7 +76,7 @@ import java.util.Objects;
  * TODO: nicer swiping removal with visual feedback
  *  */
 
  * TODO: nicer swiping removal with visual feedback
  *  */
 
-public class NewTransactionActivity extends CrashReportingActivity
+public class NewTransactionActivity extends ProfileThemedActivity
         implements TaskCallback, DescriptionSelectedCallback {
     private static SaveTransactionTask saver;
     private TableLayout table;
         implements TaskCallback, DescriptionSelectedCallback {
     private static SaveTransactionTask saver;
     private TableLayout table;
index ee4707c..a1bc5cf 100644 (file)
@@ -30,6 +30,7 @@ import net.ktnx.mobileledger.R;
 import net.ktnx.mobileledger.model.Data;
 import net.ktnx.mobileledger.model.MobileLedgerProfile;
 import net.ktnx.mobileledger.ui.profiles.ProfileDetailFragment;
 import net.ktnx.mobileledger.model.Data;
 import net.ktnx.mobileledger.model.MobileLedgerProfile;
 import net.ktnx.mobileledger.ui.profiles.ProfileDetailFragment;
+import net.ktnx.mobileledger.utils.Colors;
 
 import androidx.appcompat.app.ActionBar;
 import androidx.appcompat.widget.Toolbar;
 
 import androidx.appcompat.app.ActionBar;
 import androidx.appcompat.widget.Toolbar;
@@ -41,10 +42,22 @@ import androidx.appcompat.widget.Toolbar;
  * in a {@link ProfileListActivity}.
  */
 public class ProfileDetailActivity extends CrashReportingActivity {
  * in a {@link ProfileListActivity}.
  */
 public class ProfileDetailActivity extends CrashReportingActivity {
-    private MobileLedgerProfile profile;
+    private MobileLedgerProfile profile = null;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
+        final int index = getIntent().getIntExtra(ProfileDetailFragment.ARG_ITEM_ID, -1);
+
+        if (index != -1) {
+            profile = Data.profiles.get(index);
+            if (profile == null) throw new AssertionError(
+                    String.format("Can't get profile " + "(index:%d) from the global list", index));
+
+            Log.d("profiles", String.format("Editing profile %s (%s); hue=%d", profile.getName(),
+                    profile.getUuid(), profile.getThemeId()));
+        }
+
         super.onCreate(savedInstanceState);
         super.onCreate(savedInstanceState);
+        Colors.setupTheme(this, profile);
         setContentView(R.layout.activity_profile_detail);
         Toolbar toolbar = findViewById(R.id.detail_toolbar);
         setSupportActionBar(toolbar);
         setContentView(R.layout.activity_profile_detail);
         Toolbar toolbar = findViewById(R.id.detail_toolbar);
         setSupportActionBar(toolbar);
@@ -74,15 +87,6 @@ public class ProfileDetailActivity extends CrashReportingActivity {
         // http://developer.android.com/guide/components/fragments.html
         //
         if (savedInstanceState == null) {
         // http://developer.android.com/guide/components/fragments.html
         //
         if (savedInstanceState == null) {
-            final int index = getIntent().getIntExtra(ProfileDetailFragment.ARG_ITEM_ID, -1);
-
-            if (index != -1) {
-                profile = Data.profiles.get(index);
-                if (profile == null) throw new AssertionError(
-                        String.format("Can't get profile " + "(index:%d) from the global list",
-                                index));
-            }
-
             // Create the detail fragment and add it to the activity
             // using a fragment transaction.
             Bundle arguments = new Bundle();
             // Create the detail fragment and add it to the activity
             // using a fragment transaction.
             Bundle arguments = new Bundle();
diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/ProfileThemedActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/ProfileThemedActivity.java
new file mode 100644 (file)
index 0000000..1301a85
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright © 2019 Damyan Ivanov.
+ *  This file is part of MoLe.
+ *  MoLe is free software: you can distribute it and/or modify it
+ *  under the term of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your opinion), any later version.
+ *
+ *  MoLe is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *  GNU General Public License terms for details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with Mobile-Ledger. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package net.ktnx.mobileledger.ui.activity;
+
+import android.os.Bundle;
+
+import net.ktnx.mobileledger.utils.Colors;
+
+import androidx.annotation.Nullable;
+
+public class ProfileThemedActivity extends CrashReportingActivity {
+    protected void setupProfileColors() {
+        Colors.setupTheme(this);
+    }
+    @Override
+    protected void onStart() {
+        super.onStart();
+        Colors.refreshColors(getTheme());
+    }
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        Colors.setupTheme(this);
+    }
+}