From 95710ae4e82518b7f2d39852560954b31771d9dd Mon Sep 17 00:00:00 2001 From: Felix Prahl-Kamps Date: Tue, 23 Jul 2019 23:04:07 +0200 Subject: [PATCH] add preference screen (WIP) --- .idea/misc.xml | 2 +- app/build.gradle | 6 +-- app/src/main/AndroidManifest.xml | 1 + .../mispbump/activities/HomeActivity.java | 10 ++--- .../mispbump/activities/LoginActivity.java | 3 +- .../activities/PreferenceActivity.java | 30 +++++++-------- .../fragments/PreferencesFragment.java | 14 +++++++ .../main/res/layout/activity_preference.xml | 37 +++++++++++-------- app/src/main/res/menu/main_menu.xml | 10 ++--- app/src/main/res/values/array.xml | 12 ++++++ app/src/main/res/xml/app_preferences.xml | 13 +++++++ 11 files changed, 87 insertions(+), 51 deletions(-) create mode 100644 app/src/main/java/lu/circl/mispbump/fragments/PreferencesFragment.java create mode 100644 app/src/main/res/values/array.xml create mode 100644 app/src/main/res/xml/app_preferences.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index da7759f..93a9df2 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -38,7 +38,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 631627d..79b7ad2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,6 +29,7 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.0.0' + implementation 'androidx.preference:preference:1.1.0-rc01' // retrofit implementation 'com.squareup.retrofit2:retrofit:2.6.0' @@ -36,15 +37,12 @@ dependencies { implementation 'com.squareup.okhttp3:logging-interceptor:3.11.0' // barcode reading - implementation 'com.google.android.gms:play-services-vision:17.0.2' + implementation 'com.google.android.gms:play-services-vision:18.0.0' // barcode generation implementation 'com.journeyapps:zxing-android-embedded:3.2.0@aar' implementation 'com.google.zxing:core:3.4.0' - // external - implementation 'me.saket:inboxrecyclerview:1.0.0-rc1' - implementation fileTree(dir: 'libs', include: ['*.jar']) testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.2.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9dde01d..57b26e8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -45,6 +45,7 @@ android:parentActivityName=".activities.HomeActivity" /> uploadInformationList; private PreferenceManager preferenceManager; private RecyclerView recyclerView; @@ -53,10 +51,10 @@ public class HomeActivity extends AppCompatActivity { @Override public boolean onOptionsItemSelected(MenuItem item) { -// if (item.getItemId() == R.id.menu_settings) { -// startActivity(new Intent(HomeActivity.this, PreferenceActivity.class)); -// return true; -// } + if (item.getItemId() == R.id.menu_settings) { + startActivity(new Intent(HomeActivity.this, PreferenceActivity.class)); + return true; + } if (item.getItemId() == R.id.menu_profile) { startActivity(new Intent(HomeActivity.this, ProfileActivity.class)); diff --git a/app/src/main/java/lu/circl/mispbump/activities/LoginActivity.java b/app/src/main/java/lu/circl/mispbump/activities/LoginActivity.java index 73ac76a..a627926 100644 --- a/app/src/main/java/lu/circl/mispbump/activities/LoginActivity.java +++ b/app/src/main/java/lu/circl/mispbump/activities/LoginActivity.java @@ -3,7 +3,6 @@ package lu.circl.mispbump.activities; import android.content.Intent; import android.net.Uri; import android.os.Bundle; -import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -210,6 +209,6 @@ public class LoginActivity extends AppCompatActivity { * @return true or false */ private boolean isValidAutomationKey(String automationKey) { - return !TextUtils.isEmpty(automationKey); + return !automationKey.equals(""); } } diff --git a/app/src/main/java/lu/circl/mispbump/activities/PreferenceActivity.java b/app/src/main/java/lu/circl/mispbump/activities/PreferenceActivity.java index 9785f9e..601979d 100644 --- a/app/src/main/java/lu/circl/mispbump/activities/PreferenceActivity.java +++ b/app/src/main/java/lu/circl/mispbump/activities/PreferenceActivity.java @@ -1,35 +1,31 @@ package lu.circl.mispbump.activities; -import androidx.appcompat.app.AppCompatActivity; - import android.os.Bundle; -import android.view.View; -import android.widget.Button; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; import lu.circl.mispbump.R; -import lu.circl.mispbump.auxiliary.PreferenceManager; +import lu.circl.mispbump.fragments.PreferencesFragment; public class PreferenceActivity extends AppCompatActivity { - private PreferenceManager preferenceManager; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_preference); - - preferenceManager = PreferenceManager.getInstance(PreferenceActivity.this); - initializeViews(); } private void initializeViews() { - Button deleteSyncs = findViewById(R.id.deleteSyncs); - deleteSyncs.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - preferenceManager.clearUploadInformation(); - } - }); + Toolbar myToolbar = findViewById(R.id.toolbar); + setSupportActionBar(myToolbar); + + FragmentManager fragmentManager = getSupportFragmentManager(); + FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); + fragmentTransaction.add(R.id.fragmentContainer, new PreferencesFragment(), PreferencesFragment.class.getSimpleName()); + fragmentTransaction.commit(); } } diff --git a/app/src/main/java/lu/circl/mispbump/fragments/PreferencesFragment.java b/app/src/main/java/lu/circl/mispbump/fragments/PreferencesFragment.java new file mode 100644 index 0000000..bc76f9d --- /dev/null +++ b/app/src/main/java/lu/circl/mispbump/fragments/PreferencesFragment.java @@ -0,0 +1,14 @@ +package lu.circl.mispbump.fragments; + +import android.os.Bundle; + +import androidx.preference.PreferenceFragmentCompat; + +import lu.circl.mispbump.R; + +public class PreferencesFragment extends PreferenceFragmentCompat { + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.app_preferences, rootKey); + } +} diff --git a/app/src/main/res/layout/activity_preference.xml b/app/src/main/res/layout/activity_preference.xml index b471d0f..d54e641 100644 --- a/app/src/main/res/layout/activity_preference.xml +++ b/app/src/main/res/layout/activity_preference.xml @@ -1,21 +1,26 @@ - + android:layout_width="match_parent"> - + - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/main_menu.xml b/app/src/main/res/menu/main_menu.xml index 1f4350b..3defc8b 100644 --- a/app/src/main/res/menu/main_menu.xml +++ b/app/src/main/res/menu/main_menu.xml @@ -8,9 +8,9 @@ android:title="Profile" app:showAsAction="ifRoom"/> - - - - - + \ No newline at end of file diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml new file mode 100644 index 0000000..0c05e70 --- /dev/null +++ b/app/src/main/res/values/array.xml @@ -0,0 +1,12 @@ + + + + English + German + + + + en + de + + \ No newline at end of file diff --git a/app/src/main/res/xml/app_preferences.xml b/app/src/main/res/xml/app_preferences.xml new file mode 100644 index 0000000..ecce19f --- /dev/null +++ b/app/src/main/res/xml/app_preferences.xml @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file