From d1ceb6d6b92635a69a78be8dd7fedd797de511c6 Mon Sep 17 00:00:00 2001 From: Franze Jr Date: Thu, 26 Nov 2015 18:56:22 -0300 Subject: [PATCH] [#13] First version of SettingsActivity --- Habitica/AndroidManifest.xml | 4 +- Habitica/res/values/strings.xml | 3 + Habitica/res/xml/activity_preferences.xml | 33 +++++ Habitica/res/xml/app_prefs_cat1.xml | 23 ---- Habitica/res/xml/app_prefs_cat2.xml | 18 --- Habitica/res/xml/pref_headers.xml | 25 ---- .../android/habitica/LoginActivity.java | 38 ++---- .../android/habitica/MainActivity.java | 20 +++ .../android/habitica/prefs/PrefsActivity.java | 128 +++++------------- 9 files changed, 104 insertions(+), 188 deletions(-) create mode 100644 Habitica/res/xml/activity_preferences.xml delete mode 100644 Habitica/res/xml/app_prefs_cat1.xml delete mode 100644 Habitica/res/xml/app_prefs_cat2.xml delete mode 100644 Habitica/res/xml/pref_headers.xml diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml index a78699f3b..bf7c0a09e 100644 --- a/Habitica/AndroidManifest.xml +++ b/Habitica/AndroidManifest.xml @@ -34,7 +34,9 @@ + android:theme="@style/AppThemeWithActionBar" + android:parentActivityName=".MainActivity" + android:label="@string/PS_settings_title"> diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index 64874f8ca..f6f31db4a 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -20,6 +20,7 @@ Params + Settings Server config ServerAdress Server Address @@ -30,6 +31,8 @@ User ID Your User ID APIToken + Username + E-mail API Token Your API Token Contact me diff --git a/Habitica/res/xml/activity_preferences.xml b/Habitica/res/xml/activity_preferences.xml new file mode 100644 index 000000000..1db431bcb --- /dev/null +++ b/Habitica/res/xml/activity_preferences.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Habitica/res/xml/app_prefs_cat1.xml b/Habitica/res/xml/app_prefs_cat1.xml deleted file mode 100644 index d978686e6..000000000 --- a/Habitica/res/xml/app_prefs_cat1.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Habitica/res/xml/app_prefs_cat2.xml b/Habitica/res/xml/app_prefs_cat2.xml deleted file mode 100644 index 5259b88f9..000000000 --- a/Habitica/res/xml/app_prefs_cat2.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/Habitica/res/xml/pref_headers.xml b/Habitica/res/xml/pref_headers.xml deleted file mode 100644 index 08ce5fa4b..000000000 --- a/Habitica/res/xml/pref_headers.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - -
- -
- -
- -
-
- -
-
\ No newline at end of file diff --git a/Habitica/src/com/habitrpg/android/habitica/LoginActivity.java b/Habitica/src/com/habitrpg/android/habitica/LoginActivity.java index 1ea2c623a..6789f0300 100644 --- a/Habitica/src/com/habitrpg/android/habitica/LoginActivity.java +++ b/Habitica/src/com/habitrpg/android/habitica/LoginActivity.java @@ -1,40 +1,27 @@ package com.habitrpg.android.habitica; -import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; import android.os.Bundle; -import android.os.Handler; import android.preference.PreferenceManager; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; -import android.text.SpannableString; -import android.text.method.LinkMovementMethod; -import android.text.util.Linkify; import android.util.Log; -import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; -import android.view.ViewGroup; -import android.view.animation.Animation; -import android.view.animation.Transformation; import android.view.inputmethod.EditorInfo; import android.widget.Button; import android.widget.EditText; -import android.widget.ImageView; -import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TableRow; -import android.widget.TextView; import com.facebook.AccessToken; import com.facebook.CallbackManager; import com.facebook.FacebookCallback; import com.facebook.FacebookException; -import com.facebook.FacebookSdk; import com.facebook.login.LoginResult; import com.facebook.login.widget.LoginButton; import com.habitrpg.android.habitica.callbacks.HabitRPGUserCallback; @@ -125,7 +112,6 @@ public class LoginActivity extends AppCompatActivity mApiHelper = new APIHelper(this,hc); this.isRegistering = false; - } private void resetLayout() { @@ -178,7 +164,6 @@ public class LoginActivity extends AppCompatActivity public static void expand(final View v) { v.setVisibility(View.VISIBLE); } - // public static void collapse(final View v) { v.setVisibility(View.GONE); @@ -189,18 +174,7 @@ public class LoginActivity extends AppCompatActivity finish(); } - private void saveTokens(String api, String user) throws Exception { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this); - SharedPreferences.Editor editor = prefs.edit(); - boolean ans = editor.putString(getString(R.string.SP_APIToken), api) - .putString(getString(R.string.SP_userID), user) - .putString(getString(R.string.SP_address),getString(R.string.SP_address_default)) - .commit(); - if(!ans) { - throw new Exception("PB_string_commit"); - } - } private void toggleRegistering() { this.isRegistering = !this.isRegistering; MenuItem menuItem = menu.findItem(R.id.action_toggleRegistering); @@ -301,6 +275,18 @@ public class LoginActivity extends AppCompatActivity this.startMainActivity(); } + private void saveTokens(String api, String user) throws Exception { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this); + SharedPreferences.Editor editor = prefs.edit(); + boolean ans = editor.putString(getString(R.string.SP_APIToken), api) + .putString(getString(R.string.SP_userID), user) + .putString(getString(R.string.SP_address),getString(R.string.SP_address_default)) + .commit(); + if(!ans) { + throw new Exception("PB_string_commit"); + } + } + @Override public void failure(RetrofitError error) { mProgressBar.setVisibility(View.GONE); diff --git a/Habitica/src/com/habitrpg/android/habitica/MainActivity.java b/Habitica/src/com/habitrpg/android/habitica/MainActivity.java index 95dc7203d..7cbaa4251 100644 --- a/Habitica/src/com/habitrpg/android/habitica/MainActivity.java +++ b/Habitica/src/com/habitrpg/android/habitica/MainActivity.java @@ -2,10 +2,12 @@ package com.habitrpg.android.habitica; import android.content.DialogInterface; import android.content.Intent; +import android.content.SharedPreferences; import android.databinding.DataBindingUtil; import android.graphics.Bitmap; import android.graphics.Color; import android.os.Bundle; +import android.preference.PreferenceManager; import android.support.design.widget.Snackbar; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; @@ -145,6 +147,23 @@ public class MainActivity extends AvatarActivityBase implements HabitRPGUserCall this.tagsHelper = new TagsHelper(); } + private void saveLoginInformation(){ + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + SharedPreferences.Editor editor = prefs.edit(); + boolean ans = editor.putString(getString(R.string.SP_username), User.getAuthentication().getLocalAuthentication().getUsername()) + .putString(getString(R.string.SP_email), User.getAuthentication().getLocalAuthentication().getEmail()) + .commit(); + try{ + if(!ans) { + throw new Exception("Shared Preferences Username and Email error"); + } + }catch (Exception e){ + Log.e("SHARED PREFERENCES", e.getMessage()); + } + + } + @Override protected void onResume() { super.onResume(); @@ -612,6 +631,7 @@ public class MainActivity extends AvatarActivityBase implements HabitRPGUserCall updateHeader(); updateSidebar(); displayDeathDialogIfNeeded(); + saveLoginInformation(); } }); } diff --git a/Habitica/src/com/habitrpg/android/habitica/prefs/PrefsActivity.java b/Habitica/src/com/habitrpg/android/habitica/prefs/PrefsActivity.java index ff6937c80..11d5a791d 100644 --- a/Habitica/src/com/habitrpg/android/habitica/prefs/PrefsActivity.java +++ b/Habitica/src/com/habitrpg/android/habitica/prefs/PrefsActivity.java @@ -1,110 +1,52 @@ package com.habitrpg.android.habitica.prefs; -import android.annotation.SuppressLint; -import android.annotation.TargetApi; import android.content.Context; import android.content.SharedPreferences; -import android.os.Build; import android.os.Bundle; -import android.preference.Preference; -import android.preference.PreferenceActivity; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; -import android.view.MenuItem; +import android.support.v7.app.ActionBar; +import android.support.v7.app.AppCompatActivity; import com.habitrpg.android.habitica.HostConfig; import com.habitrpg.android.habitica.R; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.List; - -public class PrefsActivity extends PreferenceActivity { - protected Method mLoadHeaders = null; - protected Method mHasHeaders = null; - - /** - * Checks to see if using new v11+ way of handling PrefsFragments. - * - * @return Returns false pre-v11, else checks to see if using headers. - */ - public boolean isNewV11Prefs() { - if (mHasHeaders != null && mLoadHeaders != null) { - try { - return (Boolean) mHasHeaders.invoke(this); - } catch (IllegalArgumentException | IllegalAccessException | InvocationTargetException ignored) { - } - } - return false; - } - - @TargetApi(Build.VERSION_CODES.HONEYCOMB) - @SuppressWarnings("deprecation") - @Override - public void onCreate(Bundle aSavedState) { - //onBuildHeaders() will be called during super.onCreate() - try { - mLoadHeaders = getClass().getMethod("loadHeadersFromResource", int.class, List.class); - mHasHeaders = getClass().getMethod("hasHeaders"); - } catch (NoSuchMethodException e) { - } - super.onCreate(aSavedState); - if (!isNewV11Prefs()) { - addPreferencesFromResource(R.xml.app_prefs_cat1); - addPreferencesFromResource(R.xml.app_prefs_cat2); - this.findPreference(this.getString(R.string.SP_last_seen_version)).setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { - public boolean onPreferenceClick(Preference preference) { - //ChangeLogDialog _ChangelogDialog = new ChangeLogDialog(PrefsActivity.this); - //_ChangelogDialog.show( getSupportFragmentManager()); - return false; - } - }); +public class PrefsActivity extends AppCompatActivity { - } else { - if (this.getActionBar() != null) { - this.getActionBar().setDisplayHomeAsUpEnabled(true); - } - } - } - - @Override - protected boolean isValidFragment(String fragmentName) { - return true; - } - - @Override - public void onBuildHeaders(List
aTarget) { - try { - mLoadHeaders.invoke(this, new Object[]{R.xml.pref_headers, aTarget}); - } catch (IllegalArgumentException e) { - } catch (IllegalAccessException e) { - } catch (InvocationTargetException e) { - } - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - this.finish(); - return true; - } - return super.onOptionsItemSelected(item); - } - - @SuppressLint("NewApi") - static public class PrefsFragment extends PreferenceFragment { + public static class SettingsFragment extends PreferenceFragment { @Override - public void onCreate(Bundle aSavedState) { - super.onCreate(aSavedState); - Context anAct = getActivity().getApplicationContext(); - int thePrefRes = anAct.getResources().getIdentifier(getArguments().getString("pref-resource"), - "xml", anAct.getPackageName()); - addPreferencesFromResource(thePrefRes); + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.activity_preferences); } } + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + ActionBar actionBar = getSupportActionBar(); + + if (actionBar != null) { + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setHomeButtonEnabled(true); + actionBar.setDisplayShowTitleEnabled(true); + actionBar.setDisplayUseLogoEnabled(false); + } + + // Display the fragment as the main content + getFragmentManager().beginTransaction() + .replace(android.R.id.content, new SettingsFragment()) + .commit(); + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + } + + public static HostConfig fromContext(Context ctx) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); HostConfig config; @@ -127,9 +69,5 @@ public class PrefsActivity extends PreferenceActivity { } return config; } - - @Override - public void onBackPressed() { - super.onBackPressed(); - } } +