From 2b40798857b9e4c280977965190cd3def0093acc Mon Sep 17 00:00:00 2001 From: Christopher Beckmann Date: Wed, 1 Nov 2017 16:59:29 +0100 Subject: [PATCH] SettingsActivity with Drawer is just to much work. This is the farthest I have come to get it working. --- .idea/misc.xml | 5 +- .idea/modules.xml | 2 +- app/build.gradle | 18 +- app/src/main/AndroidManifest.xml | 45 +-- .../main/assets/databases/exercises.sqlite | Bin 240640 -> 240640 bytes .../activities/HelpActivity.java | 39 +- .../ManageExerciseSetsActivity.java | 1 - .../activities/SettingsActivity.java | 367 +++++++++++++++++- .../helper/AppCompatPreferenceActivity.java | 109 ++++++ .../activities/helper/BaseActivity.java | 2 +- .../helper/ExpandableListAdapter.java | 101 +++++ .../service/NotificationDeletedReceiver.java | 25 ++ .../service/TimerService.java | 5 +- .../main/res/drawable/BreakReminder_23.png | Bin 24646 -> 17922 bytes .../main/res/drawable/BreakReminder_56.png | Bin 34215 -> 26153 bytes .../drawable/ic_notifications_black_24dp.xml | 9 + .../main/res/drawable/ic_sync_black_24dp.xml | 9 + app/src/main/res/layout/activity_help.xml | 12 +- app/src/main/res/layout/activity_settings.xml | 46 ++- .../res/layout/dialog_add_exercise_set.xml | 1 + app/src/main/res/layout/help_list_group.xml | 14 + app/src/main/res/layout/help_list_item.xml | 14 + app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values/strings.xml | 75 ++++ app/src/main/res/xml/pref_general.xml | 26 +- app/src/main/res/xml/pref_headers.xml | 9 +- app/src/main/res/xml/pref_scheduler.xml | 20 + build.gradle | 6 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 31 files changed, 872 insertions(+), 98 deletions(-) create mode 100644 app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/helper/AppCompatPreferenceActivity.java create mode 100644 app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/helper/ExpandableListAdapter.java create mode 100644 app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/NotificationDeletedReceiver.java create mode 100644 app/src/main/res/drawable/ic_notifications_black_24dp.xml create mode 100644 app/src/main/res/drawable/ic_sync_black_24dp.xml create mode 100644 app/src/main/res/layout/help_list_group.xml create mode 100644 app/src/main/res/layout/help_list_item.xml create mode 100644 app/src/main/res/xml/pref_scheduler.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index c299bad..c2f4918 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,8 +1,5 @@ - - - - + diff --git a/.idea/modules.xml b/.idea/modules.xml index 6f9f70f..4b79afc 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 17f2084..f6e9017 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 25 - buildToolsVersion "25.0.3" + buildToolsVersion '26.0.2' defaultConfig { applicationId "org.secuso.privacyfriendlybreakreminder" @@ -24,22 +24,24 @@ android { } } -repositories{ +repositories { mavenCentral() mavenLocal() + google() } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') - compile 'com.android.support:appcompat-v7:25.3.1' - compile 'com.android.support:design:25.3.1' + compile 'com.android.support:appcompat-v7:25.4.0' + //compile 'com.android.support:preference-v7:25.4.0' + compile 'com.android.support:design:25.4.0' compile 'com.github.bumptech.glide:glide:3.7.0' - compile 'com.android.support:support-v4:25.3.1' - compile 'com.android.support:support-annotations:25.3.1' - compile 'com.android.support:cardview-v7:25.3.1' + compile 'com.android.support:support-v4:25.4.0' + compile 'com.android.support:support-annotations:27.0.0' + compile 'com.android.support:cardview-v7:25.4.0' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.nex3z:flow-layout:1.0.0' compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1' testCompile 'junit:junit:4.12' - compile 'com.shawnlin:number-picker:2.4.4' + compile 'com.shawnlin:number-picker:2.4.4' // https://github.com/ShawnLin013/NumberPicker } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 03f1855..dfd900f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,67 +2,60 @@ - + - - + android:screenOrientation="portrait" + android:theme="@style/SplashTheme"> - + android:screenOrientation="portrait" + android:theme="@style/AppTheme.NoActionBar"> - - + android:screenOrientation="portrait" + android:theme="@style/AppTheme.NoActionBar" /> + android:windowSoftInputMode="adjustResize"> - - + android:windowSoftInputMode="adjustResize"> - > + android:value="org.secuso.privacyfriendlybreakreminder.activities.EditExerciseSetActivity" /> + > - - + android:screenOrientation="portrait" + android:theme="@style/AppTheme.NoActionBar"> @@ -121,6 +111,9 @@ android:enabled="true" android:exported="false" /> + \ No newline at end of file diff --git a/app/src/main/assets/databases/exercises.sqlite b/app/src/main/assets/databases/exercises.sqlite index 974576cf12668471bcf6f2cb1dff7deca03e46e6..bc0011cbed7e90b31ec6810de1cdd6fdd204e46d 100644 GIT binary patch delta 41 wcmZp;!PjtuZ-O-A(TOt7j7K*nJY``q)G;+^_GE4MWMu?mrtO}r%-fd%05?qymjD0& delta 41 wcmZp;!PjtuZ-O-Ak%=h($ diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/HelpActivity.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/HelpActivity.java index 3d65e47..d9c024f 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/HelpActivity.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/HelpActivity.java @@ -5,9 +5,17 @@ import android.preference.PreferenceFragment; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; +import android.widget.ExpandableListView; import org.secuso.privacyfriendlybreakreminder.R; import org.secuso.privacyfriendlybreakreminder.activities.helper.BaseActivity; +import org.secuso.privacyfriendlybreakreminder.activities.helper.ExpandableListAdapter; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.List; /** * @author Christopher Beckmann @@ -20,6 +28,27 @@ public class HelpActivity extends BaseActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_help); + + LinkedHashMap> expandableListDetail = buildData(); + List expandableListTitleGeneral = new ArrayList(expandableListDetail.keySet()); + + ExpandableListView generalExpandableListView = (ExpandableListView) findViewById(R.id.generalExpandableListView); + generalExpandableListView.setAdapter(new ExpandableListAdapter(this, expandableListTitleGeneral, expandableListDetail)); + + } + + private LinkedHashMap> buildData() { + LinkedHashMap> expandableListDetail = new LinkedHashMap<>(); + + expandableListDetail.put(getString(R.string.help_whatis), Collections.singletonList(getString(R.string.help_whatis_answer))); + + //expandableListDetail.put(getString(R.string.help_feature_one), Collections.singletonList(getString(R.string.help_feature_one_answer))); + + //expandableListDetail.put(getString(R.string.help_privacy), Collections.singletonList(getString(R.string.help_privacy_answer))); + + expandableListDetail.put(getString(R.string.help_permission), Collections.singletonList(getString(R.string.help_permission_answer))); + + return expandableListDetail; } @Override @@ -27,14 +56,4 @@ public class HelpActivity extends BaseActivity { return R.id.nav_help; } - public static class HelpFragment extends PreferenceFragment { - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - //addPreferencesFromResource(R.xml.pref_help); - } - } - } diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/ManageExerciseSetsActivity.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/ManageExerciseSetsActivity.java index 0b7c8fe..d78e617 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/ManageExerciseSetsActivity.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/ManageExerciseSetsActivity.java @@ -181,7 +181,6 @@ public class ManageExerciseSetsActivity extends BaseActivity implements android. ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(!enabled); - actionBar.setDefaultDisplayHomeAsUpEnabled(!enabled); actionBar.setDisplayShowHomeEnabled(enabled); actionBar.setHomeButtonEnabled(enabled); } diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/SettingsActivity.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/SettingsActivity.java index f1c1300..63265d8 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/SettingsActivity.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/SettingsActivity.java @@ -2,35 +2,334 @@ package org.secuso.privacyfriendlybreakreminder.activities; +import android.annotation.TargetApi; +import android.app.Fragment; +import android.app.FragmentTransaction; +import android.content.Context; import android.content.Intent; -import android.media.Ringtone; -import android.media.RingtoneManager; -import android.net.Uri; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.TypedArray; +import android.graphics.Color; +import android.os.Build; import android.os.Bundle; -import android.os.PersistableBundle; +import android.os.Handler; import android.preference.ListPreference; import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.support.annotation.LayoutRes; +import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.annotation.StringRes; +import android.support.design.widget.NavigationView; +import android.support.v4.app.TaskStackBuilder; +import android.support.v4.view.GravityCompat; +import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBar; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; -import android.preference.RingtonePreference; -import android.text.TextUtils; +import android.support.v7.app.ActionBarDrawerToggle; +import android.support.v7.app.AppCompatDelegate; +import android.support.v7.widget.Toolbar; +import android.util.Log; +import android.view.MenuInflater; import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; -import org.secuso.privacyfriendlybreakreminder.activities.helper.BaseActivity; import org.secuso.privacyfriendlybreakreminder.R; +import org.secuso.privacyfriendlybreakreminder.activities.helper.AppCompatPreferenceActivity; +import org.secuso.privacyfriendlybreakreminder.activities.tutorial.TutorialActivity; + +import java.util.List; + +import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; /** * @author Christopher Beckmann * @version 2.0 */ -public class SettingsActivity extends BaseActivity { +public class SettingsActivity extends AppCompatPreferenceActivity implements NavigationView.OnNavigationItemSelectedListener{ + + // delay to launch nav drawer item, to allow close animation to play + protected static final int NAVDRAWER_LAUNCH_DELAY = 250; + // fade in and fade out durations for the main content when switching between + // different Activities of the app through the Nav Drawer + protected static final int MAIN_CONTENT_FADEOUT_DURATION = 150; + protected static final int MAIN_CONTENT_FADEIN_DURATION = 250; + + // Navigation drawer: + protected DrawerLayout mDrawerLayout; + private NavigationView mNavigationView; + protected Toolbar toolbar; + protected ActionBarDrawerToggle mDrawerToggle; + + // Helper + private Handler mHandler; + protected SharedPreferences mSharedPreferences; + + private boolean mDrawerEnabled; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + + mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); + mHandler = new Handler(); + + overridePendingTransition(0, 0); + } + + @Override + public void onBackPressed() { + if (mDrawerLayout != null && mDrawerLayout.isDrawerOpen(GravityCompat.START)) { + mDrawerLayout.closeDrawer(GravityCompat.START); + } else { + super.onBackPressed(); + } + } + + /** + * {@inheritDoc} + */ + @Override + public boolean onIsMultiPane() { + return isXLargeTablet(this); + } + + /** + * Helper method to determine if the device has an extra-large screen. For + * example, 10" tablets are extra-large. + */ + private static boolean isXLargeTablet(Context context) { + return (context.getResources().getConfiguration().screenLayout + & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE; + } + + /** + * {@inheritDoc} + */ + @Override + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + public void onBuildHeaders(List
target) { + loadHeadersFromResource(R.xml.pref_headers, target); + } + + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + return goToNavigationItem(item.getItemId()); + } + + protected boolean goToNavigationItem(final int itemId) { + + if(itemId == getNavigationDrawerID()) { + // just close drawer because we are already in this activity + mDrawerLayout.closeDrawer(GravityCompat.START); + return true; + } + + // delay transition so the drawer can close + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + callDrawerItem(itemId); + } + }, NAVDRAWER_LAUNCH_DELAY); + + mDrawerLayout.closeDrawer(GravityCompat.START); + + selectNavigationItem(itemId); + + // fade out the active activity + View mainContent = findViewById(R.id.main_content); + if (mainContent != null) { + mainContent.animate().alpha(0).setDuration(MAIN_CONTENT_FADEOUT_DURATION); + } + return true; + } + + // set active navigation item + private void selectNavigationItem(int itemId) { + for(int i = 0 ; i < mNavigationView.getMenu().size(); i++) { + boolean b = itemId == mNavigationView.getMenu().getItem(i).getItemId(); + mNavigationView.getMenu().getItem(i).setChecked(b); + } + } + + /** + * Enables back navigation for activities that are launched from the NavBar. See + * {@code AndroidManifest.xml} to find out the parent activity names for each activity. + * @param intent + */ + private void createBackStack(Intent intent) { + TaskStackBuilder builder = TaskStackBuilder.create(this); + builder.addNextIntentWithParentStack(intent); + builder.startActivities(); + } + + /** + * This method manages the behaviour of the navigation drawer + * Add your menu items (ids) to res/menu/activity_main_drawer.xml + * @param itemId Item that has been clicked by the user + */ + private void callDrawerItem(final int itemId) { + + Intent intent; + + switch(itemId) { + case R.id.nav_timer: + intent = new Intent(this, TimerActivity.class); + intent.addFlags(FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + break; + case R.id.nav_manage_exercise_sets: + intent = new Intent(this, ManageExerciseSetsActivity.class); + createBackStack(intent); + break; + case R.id.nav_tutorial: + intent = new Intent(this, TutorialActivity.class); + createBackStack(intent); + break; + case R.id.nav_about: + intent = new Intent(this, AboutActivity.class); + createBackStack(intent); + break; + case R.id.nav_help: + intent = new Intent(this, HelpActivity.class); + createBackStack(intent); + break; + case R.id.nav_settings: + intent = new Intent(this, SettingsActivity.class); + //intent.putExtra( PreferenceActivity.EXTRA_SHOW_FRAGMENT, SettingsActivity.ExercisePreferenceFragment.class.getName() ); + //intent.putExtra( PreferenceActivity.EXTRA_NO_HEADERS, true ); + createBackStack(intent); + break; + default: + } + overridePendingTransition(0,0); + } + + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + setContentView(R.layout.activity_settings); + + toolbar = (Toolbar) findViewById(R.id.toolbar); + if(getSupportActionBar() == null) { + setSupportActionBar(toolbar); + } + +// mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); +// mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); +// mDrawerLayout.addDrawerListener(mDrawerToggle); +// mDrawerToggle.syncState(); +// +// mNavigationView = (NavigationView) findViewById(R.id.nav_view); +// mNavigationView.setNavigationItemSelectedListener(this); +// +// showContent(); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + onBackPressed(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } + + public void setDrawerEnabled(final boolean enabled) { + + int lockMode = enabled ? + DrawerLayout.LOCK_MODE_UNLOCKED : + DrawerLayout.LOCK_MODE_LOCKED_CLOSED; + + mDrawerEnabled = enabled; + + if(mDrawerLayout == null) return; + + mDrawerLayout.setDrawerLockMode(lockMode); + mDrawerToggle.setDrawerIndicatorEnabled(enabled); + + ActionBar actionBar = getSupportActionBar(); + if (actionBar != null) { + actionBar.setDisplayHomeAsUpEnabled(!enabled); + actionBar.setDisplayShowHomeEnabled(enabled); + actionBar.setHomeButtonEnabled(enabled); + } + + mDrawerToggle.syncState(); + } + + @Override + protected boolean isValidFragment(String fragmentName) { + return ExercisePreferenceFragment.class.getName().equals(fragmentName) + || TimerPreferenceFragment.class.getName().equals(fragmentName); + } + + private void showContent() { + selectNavigationItem(getNavigationDrawerID()); + + View mainContent = findViewById(R.id.main_content); + if (mainContent != null) { + mainContent.setAlpha(0); + mainContent.animate().alpha(1).setDuration(MAIN_CONTENT_FADEIN_DURATION); + } + } + + @Override + protected void onResume() { + super.onResume(); + + //showContent(); + } + + /** + * Start a new fragment. + * + * @param fragment The fragment to start + * @param push If true, the current fragment will be pushed onto the back stack. If false, + * the current fragment will be replaced. + */ + @Override + public void startPreferenceFragment(Fragment fragment, boolean push) { + FragmentTransaction transaction = getFragmentManager().beginTransaction(); + transaction.replace(R.id.prefs, fragment); + if (push) { + transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); + transaction.addToBackStack(":android:prefs"); + } else { + transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); + } + transaction.commitAllowingStateLoss(); + } + + /** + * Start a new fragment containing a preference panel. If the preferences + * are being displayed in multi-pane mode, the given fragment class will + * be instantiated and placed in the appropriate pane. If running in + * single-pane mode, a new activity will be launched in which to show the + * fragment. + * + * @param fragmentClass Full name of the class implementing the fragment. + * @param args Any desired arguments to supply to the fragment. + * @param titleRes Optional resource identifier of the title of this + * fragment. + * @param titleText Optional text of the title of this fragment. + * @param resultTo Optional fragment that result data should be sent to. + * If non-null, resultTo.onActivityResult() will be called when this + * preference panel is done. The launched panel must use + * {@link #finishPreferencePanel(Fragment, int, Intent)} when done. + * @param resultRequestCode If resultTo is non-null, this is the caller's + * request code to be received with the result. + */ + public void startPreferencePanel(String fragmentClass, Bundle args, @StringRes int titleRes, + CharSequence titleText, Fragment resultTo, int resultRequestCode) { + startWithFragment(fragmentClass, args, resultTo, resultRequestCode, titleRes, 0); } /** @@ -84,13 +383,12 @@ public class SettingsActivity extends BaseActivity { .getString(preference.getKey(), "")); } - @Override protected int getNavigationDrawerID() { return R.id.nav_settings; } + public static class ExercisePreferenceFragment extends PreferenceFragment { - public static class GeneralPreferenceFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -105,13 +403,48 @@ public class SettingsActivity extends BaseActivity { } @Override - public boolean onOptionsItemSelected(MenuItem item) { - int id = item.getItemId(); - if (id == android.R.id.home) { - startActivity(new Intent(getActivity(), SettingsActivity.class)); - return true; - } - return super.onOptionsItemSelected(item); + public void onResume() { + super.onResume(); + + SettingsActivity settingsActivity = (SettingsActivity)getActivity(); + if(settingsActivity != null) settingsActivity.setDrawerEnabled(false); } + +// @Override +// public boolean onOptionsItemSelected(MenuItem item) { +// int id = item.getItemId(); +// if (id == android.R.id.home) { +// Log.d("Fragment", "clicked"); +// onBackPressed(); +// return true; +// } +// return super.onOptionsItemSelected(item); +// } + } + + public static class TimerPreferenceFragment extends PreferenceFragment { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.pref_scheduler); + setHasOptionsMenu(true); + } + + @Override + public void onDestroy() { + super.onDestroy(); + Log.d("WTF", "destroy?"); + } + + // @Override +// public boolean onOptionsItemSelected(MenuItem item) { +// int id = item.getItemId(); +// if (id == android.R.id.home) { +// //startActivity(new Intent(getActivity(), SettingsActivity.class)); +// return true; +// } +// return super.onOptionsItemSelected(item); +// } + } } \ No newline at end of file diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/helper/AppCompatPreferenceActivity.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/helper/AppCompatPreferenceActivity.java new file mode 100644 index 0000000..2f7948b --- /dev/null +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/helper/AppCompatPreferenceActivity.java @@ -0,0 +1,109 @@ +package org.secuso.privacyfriendlybreakreminder.activities.helper; + +import android.content.res.Configuration; +import android.os.Bundle; +import android.preference.PreferenceActivity; +import android.support.annotation.LayoutRes; +import android.support.annotation.Nullable; +import android.support.v7.app.ActionBar; +import android.support.v7.app.AppCompatDelegate; +import android.support.v7.widget.Toolbar; +import android.view.MenuInflater; +import android.view.View; +import android.view.ViewGroup; + +/** + * A {@link android.preference.PreferenceActivity} which implements and proxies the necessary calls + * to be used with AppCompat. + */ +public abstract class AppCompatPreferenceActivity extends PreferenceActivity { + + private AppCompatDelegate mDelegate; + + @Override + protected void onCreate(Bundle savedInstanceState) { + getDelegate().installViewFactory(); + getDelegate().onCreate(savedInstanceState); + super.onCreate(savedInstanceState); + } + + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + getDelegate().onPostCreate(savedInstanceState); + } + + public ActionBar getSupportActionBar() { + return getDelegate().getSupportActionBar(); + } + + public void setSupportActionBar(@Nullable Toolbar toolbar) { + getDelegate().setSupportActionBar(toolbar); + } + + @Override + public MenuInflater getMenuInflater() { + return getDelegate().getMenuInflater(); + } + + @Override + public void setContentView(@LayoutRes int layoutResID) { + getDelegate().setContentView(layoutResID); + } + + @Override + public void setContentView(View view) { + getDelegate().setContentView(view); + } + + @Override + public void setContentView(View view, ViewGroup.LayoutParams params) { + getDelegate().setContentView(view, params); + } + + @Override + public void addContentView(View view, ViewGroup.LayoutParams params) { + getDelegate().addContentView(view, params); + } + + @Override + protected void onPostResume() { + super.onPostResume(); + getDelegate().onPostResume(); + } + + @Override + protected void onTitleChanged(CharSequence title, int color) { + super.onTitleChanged(title, color); + getDelegate().setTitle(title); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + getDelegate().onConfigurationChanged(newConfig); + } + + @Override + protected void onStop() { + super.onStop(); + getDelegate().onStop(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + getDelegate().onDestroy(); + } + + public void invalidateOptionsMenu() { + getDelegate().invalidateOptionsMenu(); + } + + private AppCompatDelegate getDelegate() { + if (mDelegate == null) { + mDelegate = AppCompatDelegate.create(this, null); + } + return mDelegate; + } +} diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/helper/BaseActivity.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/helper/BaseActivity.java index 9014bd0..2b971cb 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/helper/BaseActivity.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/helper/BaseActivity.java @@ -162,7 +162,7 @@ public abstract class BaseActivity extends AppCompatActivity implements OnNaviga break; case R.id.nav_settings: intent = new Intent(this, SettingsActivity.class); - //intent.putExtra( PreferenceActivity.EXTRA_SHOW_FRAGMENT, SettingsActivity.GeneralPreferenceFragment.class.getName() ); + //intent.putExtra( PreferenceActivity.EXTRA_SHOW_FRAGMENT, SettingsActivity.ExercisePreferenceFragment.class.getName() ); //intent.putExtra( PreferenceActivity.EXTRA_NO_HEADERS, true ); createBackStack(intent); break; diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/helper/ExpandableListAdapter.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/helper/ExpandableListAdapter.java new file mode 100644 index 0000000..f4012ef --- /dev/null +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/helper/ExpandableListAdapter.java @@ -0,0 +1,101 @@ +package org.secuso.privacyfriendlybreakreminder.activities.helper; + +import android.content.Context; +import android.graphics.Typeface; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseExpandableListAdapter; +import android.widget.TextView; + +import org.secuso.privacyfriendlybreakreminder.R; + +import java.util.HashMap; +import java.util.List; + +/** + * @author Christopher Beckmann + * @version 2.0 + * @since 26.10.2017 + * created 26.10.2017 + */ + +public class ExpandableListAdapter extends BaseExpandableListAdapter { + + private Context context; + private List expandableListTitle; + private HashMap> expandableListDetail; + + public ExpandableListAdapter(Context context, List expandableListTitle, + HashMap> expandableListDetail) { + this.context = context; + this.expandableListTitle = expandableListTitle; + this.expandableListDetail = expandableListDetail; + } + + @Override + public Object getChild(int listPosition, int expandedListPosition) { + return this.expandableListDetail.get(this.expandableListTitle.get(listPosition)).get(expandedListPosition); + } + + @Override + public long getChildId(int listPosition, int expandedListPosition) { + return expandedListPosition; + } + + @Override + public View getChildView(int listPosition, final int expandedListPosition, boolean isLastChild, View convertView, ViewGroup parent) { + + final String expandedListText = (String) getChild(listPosition, expandedListPosition); + if (convertView == null) { + LayoutInflater layoutInflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = layoutInflater.inflate(R.layout.help_list_item, parent); + } + TextView expandedListTextView = (TextView) convertView.findViewById(R.id.expandedListItem); + expandedListTextView.setText(expandedListText); + return convertView; + } + + @Override + public int getChildrenCount(int listPosition) { + return this.expandableListDetail.get(this.expandableListTitle.get(listPosition)).size(); + } + + @Override + public Object getGroup(int listPosition) { + return this.expandableListTitle.get(listPosition); + } + + @Override + public int getGroupCount() { + return this.expandableListTitle.size(); + } + + @Override + public long getGroupId(int listPosition) { + return listPosition; + } + + @Override + public View getGroupView(int listPosition, boolean isExpanded, View convertView, ViewGroup parent) { + String listTitle = (String) getGroup(listPosition); + if (convertView == null) { + LayoutInflater layoutInflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + convertView = layoutInflater.inflate(R.layout.help_list_group, null); + } + TextView listTitleTextView = (TextView) convertView.findViewById(R.id.listTitle); + listTitleTextView.setTypeface(null, Typeface.BOLD); + listTitleTextView.setText(listTitle); + return convertView; + } + + @Override + public boolean hasStableIds() { + return true; + } + + @Override + public boolean isChildSelectable(int listPosition, int expandedListPosition) { + return true; + } +} \ No newline at end of file diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/NotificationDeletedReceiver.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/NotificationDeletedReceiver.java new file mode 100644 index 0000000..e264683 --- /dev/null +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/NotificationDeletedReceiver.java @@ -0,0 +1,25 @@ +package org.secuso.privacyfriendlybreakreminder.service; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.util.Log; + +/** + * @author Christopher Beckmann + * @version 2.0 + * @since 26.10.2017 + * created 26.10.2017 + */ +public class NotificationDeletedReceiver extends BroadcastReceiver { + + private static final String TAG = NotificationDeletedReceiver.class.getSimpleName(); + + @Override + public void onReceive(Context context, Intent intent) { + + // TODO: Notification was swiped away. + Log.d(TAG, "Notification swiped away"); + + } +} diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/TimerService.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/TimerService.java index 264f978..419b674 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/TimerService.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/service/TimerService.java @@ -103,10 +103,9 @@ public class TimerService extends Service { .setDefaults(Notification.DEFAULT_LIGHTS) .setVibrate(new long[] { 0, 1000, 1000, 1000, 1000, 1000, 1000 }) .setSound(Settings.System.DEFAULT_NOTIFICATION_URI) - .setOnlyAlertOnce(false); + .setOnlyAlertOnce(false) + .setDeleteIntent(PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent(this, NotificationDeletedReceiver.class), 0)); notificationManager.notify(NOTIFICATION_ID, builder.build()); - - // TODO: show decider activity?! } @Override diff --git a/app/src/main/res/drawable/BreakReminder_23.png b/app/src/main/res/drawable/BreakReminder_23.png index f0abd6f08026f38bb52fa016bc91d5cf9902092a..352c2997c033ac7d6980e2be3e19b92fa2bcec90 100644 GIT binary patch literal 17922 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
    bXideT`k&=%}$&;qTa&;>pp5 z3ze3Sc{=fcId|gGxL$uDK74H=hXsjvX3To$u+^+8w5uty5MVJ*Br}8BQO2tDFG~wr zZPE$DUmjsQPA|g7-gRH7^*2>8>Lz+j+uUZoL1q}`w(C)sr1v6{7WwsQTe)P0zINLm zp_vVaW6K0>MmVLK?3?z+ysOQ*KEsGPVfkZ=Anz%+ap3p}jFYY7N_Ov5cp7rHe+w

    m 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%0AtOTt{vv|JFSFuf%&|m(Q9~m5K9ZHfak9+M zPU$r$9|7dKkjtgy@{8%(xxWtYYV!pAqJBl`Qf^bJ`X>lR$4S8SKt6yB@p6%T#G;Fh=@YUT|d2fIPsK z339KG3`#~q5`#1PbR0$_7Rm9e8+^I^Jw6MdE%c~vDOg3 zU0kg;wmPi-XOc+FOJG`FHxtZ)cNlOv+twdu6Y?fAtZDD^jhIZ4%ZzVhWb^QmaK;a# zk{MctzE$!@OClCvD8e$YgURv-9MluLNht5z7m48v^OE9#;HpIJ^s7W)YH~Vs5?v1>nVTJ@b+vo|iPb|aar`GgeB>|;0uCjBDJ-ztR z_pQPnK}MgHJ@5z9E3sPI<_ED=zx+*;2{;dv`dm$+q@VT| z*ExUYfCP{VJhQu%xj15rH9p=v1K%uB}I$i z*_O-xc$ju>&&ejOMqecp*L>`B@(NkBr;}hUcrO$$3P$&_f@&h}x6uzHoCD*E$HPSh zmgNQEx@h7jPNOA1#lMz%vL#*m|b4I&{Dt1bIy%t7qlc zX}xFKOWbiSmt=*^>TY_7W!9kJGQp8FcmOF)pI> zk2mi=jxJ}z6UbGyBXClmCBbh934GsUmGj0IGjIIF;gG(RhcZ!UyClN`311*e-XVLL z=|Os@BKmLp!Hvf(7oMpU7}G?KB9~%?fyPAL-$p97+J0^9r^z4CMQy5WzdMgba^k0G245&tB@thy0*WfXZSg0~;a@0D zXYyJz#NtUa_DXZ(tZ`A@ToN|F=H=H#NLSS;A>j`AH-*-^3kB&+Zu0vaKz(k61O8OB zHFtg~yhE6AH{4>I3@xG~KL^XHF=~cBa@%^XmL!csXZo2zY~h;u3O6a;@O#jAF(9A` zSOaM32Iy3bL-{-B+4p?6hjwi;h;PT)BoCtIZ=-GxOfGJwi<^-NWT?jcX9@Inh4nu# z0^bDBzn%6dhTIY9G+fUI`Y8UFyUpkQ{--)Oz5eQwA6$z+07B*!pg+iuk=((P+qP~S zKApH}X~Li8bBT5BrIt;wBnKq?1TXOmHiP(a-PTQO;x4C7FupAEqboKBtuoU^>OCM}M%-cwv8J?s-&Yo1Q_5T;?VosQdtz zc|>2;?lEiIg`pv{SG<}#Tgc6&POUvFa+rDjGoRv!8DgQR@mO`hL`)eR;sKf}ybAlO z7QQ#EGb;%#Bemc?Z!8>Zin=53ZW)4u3p=9_OsAfsneI?DLMVYTF9k5L7b8cudX;@= znlY<=KuhW*=|`h`!Kz&bp*=O7Z`H^CT^! z8l~`ZAdgd7+g!+7Xx(@06?Q4O(l4`gZ>Q4V>PX(S1Gxr;PA<`~-y$%7&3@YIL4;wx z6APG+ky4ok$4e*pK|PYEYk%IqxiXno>if)K&=Bp$XZc%VqRCKkdk21TfLMwn)Pr28pzaDFy4p&0aSZm3(M@#r>AoHYN* zwl159a+bti4qMzQ!IHh#thri$Ff1h&u`-#**i}S*fIV_kXNtdX)~6j7!is~pbbaJ1 z#a~2Ggb=3g8@kQ#CBpH=>@q^ukr!28O@7f2XD;fpAq&mz{dsjP^cCSgTqT485_?xWUe&&_$!YEjCH6iWTxpNdB2>0HeM5P~9w6Oy zx9bq0)Bd~F!z2`nfi|)4y-sCY!_8@}=a?Wvp|IJXfw_L^fI_&q(Hn4z)V$et4Yabu6 zO}Taj4a1-Z!*A|REYbiG+agk3sZs#0XnnBpY3_hQJ$sU8Q-ftM@~VP(l`IPV=72*Z zwKNpypQQgX)ND`jXDr@wQ%33+}R?zg-bIeLfDb=E2DWU~PzPg2Ykb%}< z0MRdO2Vg3(+v|{BQ-ynBS$l8UNlbBrW^C70b>*Cq%fC*HSmYchEeTw*9(6q&4i=*7 zhl(mZbuE6vOL_TU^zFsgGksSVmw+PD4L$O2g)JAfph%0D7$0dW{S9zo`lMZXrur<~ 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 diff --git a/app/src/main/res/drawable/ic_notifications_black_24dp.xml b/app/src/main/res/drawable/ic_notifications_black_24dp.xml new file mode 100644 index 0000000..e3400cf --- /dev/null +++ b/app/src/main/res/drawable/ic_notifications_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_sync_black_24dp.xml b/app/src/main/res/drawable/ic_sync_black_24dp.xml new file mode 100644 index 0000000..5a283aa --- /dev/null +++ b/app/src/main/res/drawable/ic_sync_black_24dp.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_help.xml b/app/src/main/res/layout/activity_help.xml index b43ba00..985f85a 100644 --- a/app/src/main/res/layout/activity_help.xml +++ b/app/src/main/res/layout/activity_help.xml @@ -26,10 +26,14 @@ android:orientation="vertical" tools:context=".activities.HelpActivity" android:weightSum="1"> - + + diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 8931963..2596181 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -21,13 +21,51 @@ android:id="@+id/main_content" android:layout_height="match_parent"> - + android:layout_height="0px" + android:layout_weight="1"> + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/help_list_group.xml b/app/src/main/res/layout/help_list_group.xml new file mode 100644 index 0000000..a68ee28 --- /dev/null +++ b/app/src/main/res/layout/help_list_group.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/help_list_item.xml b/app/src/main/res/layout/help_list_item.xml new file mode 100644 index 0000000..c7932af --- /dev/null +++ b/app/src/main/res/layout/help_list_item.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index fa284f6..28388fd 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -42,7 +42,7 @@ Auswahl der Übungen Auswahl des Profils Zufall - Profile bearbeiten + Profile bearbeiten Benachrichtigungen Lautlos Profil Name diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index e53ece4..21319d2 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -32,7 +32,7 @@ Choisissez des exercices Choisissez un profil Hasard - Modifier les profils + Modifier les profils Notifications Silencieux Nom du profil diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 9393e7b..729b57b 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -36,7 +36,7 @@ Запустить/Остановить часы Случайный Уведомления - Редактирование профилей + Редактирование профилей Случайный,90,5,false,Руки.Ноги.Голова.Шея.Таз.Позвоночник.Туловище.;Талия вверх,90,15,true,Руки.Шея.Голова.;Корпус,30,5,true,Позвоночник.Туловище.;Нижний Корпус,30,5,true,Ноги.Таз.; Без звука Имя профиля diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index add0afd..3d7587a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -156,6 +156,81 @@ %02d Exercise time (in Seconds) Keep screen on during exercise + exercise settings + schedule an exercise + enable exercise schedule + Schedule Time + What is Privacy Friendly Break Reminder? + Privacy Friendly Break Reminder is an app, that reminds you to take breaks during your work sessions. It allows you to select exercises, that are then shown during your break time. + Which permissions does the app require? + The app only requests permission to control the vibration of the device to make the break alarm more distinct. + Schedule Times + Exercise Settings + Settings + + + + + General + + Enable social recommendations + Recommendations for people to contact + based on your message history + + + Display name + John Smith + + Add friends to messages + + Always + When possible + Never + + + 1 + 0 + -1 + + + + Data & sync + + Sync frequency + + 15 minutes + 30 minutes + 1 hour + 3 hours + 6 hours + Never + + + 15 + 30 + 60 + 180 + 360 + -1 + + + + Entry 1 + Entry 2 + Entry 3 + + + + 1 + 2 + 3 + + + + + System sync settings + + New message notifications diff --git a/app/src/main/res/xml/pref_general.xml b/app/src/main/res/xml/pref_general.xml index 43af0cc..3c7cefe 100644 --- a/app/src/main/res/xml/pref_general.xml +++ b/app/src/main/res/xml/pref_general.xml @@ -1,16 +1,20 @@ - + - + + + + + diff --git a/app/src/main/res/xml/pref_headers.xml b/app/src/main/res/xml/pref_headers.xml index 54d52fd..1e18289 100644 --- a/app/src/main/res/xml/pref_headers.xml +++ b/app/src/main/res/xml/pref_headers.xml @@ -3,8 +3,13 @@

    + android:title="@string/pref_header_exercises" /> + +
    diff --git a/app/src/main/res/xml/pref_scheduler.xml b/app/src/main/res/xml/pref_scheduler.xml new file mode 100644 index 0000000..d174040 --- /dev/null +++ b/app/src/main/res/xml/pref_scheduler.xml @@ -0,0 +1,20 @@ + + + + + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index c2eea8e..63f0f00 100644 --- a/build.gradle +++ b/build.gradle @@ -3,9 +3,13 @@ buildscript { repositories { jcenter() + maven { + url 'https://maven.google.com/' + name 'Google' + } } dependencies { - classpath 'com.android.tools.build:gradle:2.3.3' + classpath 'com.android.tools.build:gradle:3.0.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 59ff6e8..0730a83 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sat Aug 12 14:48:24 CEST 2017 +#Fri Oct 27 05:33:03 CEST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip