diff options
author | Stefan Niedermann <info@niedermann.it> | 2022-06-27 11:48:04 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2022-06-27 11:48:04 +0300 |
commit | a06e648d178ebc074119d58107e57957c05efc9f (patch) | |
tree | 82a15fa7564c54752bf5fd7ff0a7dff8750d2a16 | |
parent | 9f88971d53e397940096a00d288532d9e9eb783c (diff) |
#1531 Add option to not keep screen on
Signed-off-by: Stefan Niedermann <info@niedermann.it>
6 files changed, 48 insertions, 7 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/EditNoteActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/EditNoteActivity.java index a8c21490..fe5b87bc 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/edit/EditNoteActivity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/EditNoteActivity.java @@ -1,5 +1,7 @@ package it.niedermann.owncloud.notes.edit; +import static it.niedermann.owncloud.notes.shared.model.ENavigationCategoryType.FAVORITES; + import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; @@ -20,26 +22,22 @@ import com.nextcloud.android.sso.helper.SingleAccountHelper; import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStream; import java.io.InputStreamReader; import java.util.Calendar; import java.util.Objects; +import it.niedermann.android.sharedpreferences.SharedPreferenceBooleanLiveData; import it.niedermann.owncloud.notes.LockedActivity; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.accountpicker.AccountPickerListener; import it.niedermann.owncloud.notes.databinding.ActivityEditBinding; -import it.niedermann.owncloud.notes.databinding.ActivityEditBinding; import it.niedermann.owncloud.notes.edit.category.CategoryViewModel; import it.niedermann.owncloud.notes.persistence.entity.Account; import it.niedermann.owncloud.notes.persistence.entity.Note; -import it.niedermann.owncloud.notes.shared.model.DBStatus; import it.niedermann.owncloud.notes.shared.model.NavigationCategory; import it.niedermann.owncloud.notes.shared.util.NoteUtil; import it.niedermann.owncloud.notes.shared.util.ShareUtil; -import static it.niedermann.owncloud.notes.shared.model.ENavigationCategoryType.FAVORITES; - public class EditNoteActivity extends LockedActivity implements BaseNoteFragment.NoteFragmentListener, AccountPickerListener { private static final String TAG = EditNoteActivity.class.getSimpleName(); @@ -72,7 +70,14 @@ public class EditNoteActivity extends LockedActivity implements BaseNoteFragment return; } - getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + final var preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + new SharedPreferenceBooleanLiveData(preferences, getString(R.string.pref_key_keep_screen_on), true).observe(this, keepScreenOn -> { + if (keepScreenOn) { + Toast.makeText(getApplicationContext(), "ADD flag", Toast.LENGTH_SHORT).show(); + getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + } + }); + categoryViewModel = new ViewModelProvider(this).get(CategoryViewModel.class); binding = ActivityEditBinding.inflate(getLayoutInflater()); @@ -103,6 +108,7 @@ public class EditNoteActivity extends LockedActivity implements BaseNoteFragment @Override protected void onStop() { + Toast.makeText(getApplicationContext(), "REMOVE flag", Toast.LENGTH_SHORT).show(); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); super.onStop(); } diff --git a/app/src/main/java/it/niedermann/owncloud/notes/preferences/PreferencesFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/preferences/PreferencesFragment.java index e09c1ed4..f2a25259 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/preferences/PreferencesFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/preferences/PreferencesFragment.java @@ -33,6 +33,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra private BrandedSwitchPreference gridViewPref; private BrandedSwitchPreference preventScreenCapturePref; private BrandedSwitchPreference backgroundSyncPref; + private BrandedSwitchPreference keepScreenOnPref; @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { @@ -55,6 +56,16 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra Log.e(TAG, "Could not find preference with key: \"" + getString(R.string.pref_key_gridview) + "\""); } + keepScreenOnPref = findPreference(getString(R.string.pref_key_keep_screen_on)); + if (keepScreenOnPref != null) { + keepScreenOnPref.setOnPreferenceChangeListener((Preference preference, Object newValue) -> { + Log.v(TAG, "keepScreenOnPref: " + keepScreenOnPref); + return true; + }); + } else { + Log.e(TAG, "Could not find preference with key: \"" + getString(R.string.pref_key_gridview) + "\""); + } + preventScreenCapturePref = findPreference(getString(R.string.pref_key_prevent_screen_capture)); if (preventScreenCapturePref == null) { Log.e(TAG, "Could not find \"" + getString(R.string.pref_key_prevent_screen_capture) + "\"-preference."); @@ -125,5 +136,6 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra gridViewPref.applyBrand(mainColor, textColor); preventScreenCapturePref.applyBrand(mainColor, textColor); backgroundSyncPref.applyBrand(mainColor, textColor); + keepScreenOnPref.applyBrand(mainColor, textColor); } } diff --git a/app/src/main/res/drawable/ic_baseline_smartphone_24.xml b/app/src/main/res/drawable/ic_baseline_smartphone_24.xml new file mode 100644 index 00000000..fc886c92 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_smartphone_24.xml @@ -0,0 +1,11 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:autoMirrored="true" + android:tint="#757575" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="#FF757575" + android:pathData="M17,1.01L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V3c0,-1.1 -0.9,-1.99 -2,-1.99zM17,19H7V5h10v14z" /> +</vector> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1e1c0dca..961c42f3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -49,6 +49,9 @@ <string name="settings_lock_summary">Device credentials</string> <string name="settings_background_sync">Background synchronization</string> <string name="settings_prevent_screen_capture">Prevent screen capture</string> + <string name="settings_gridview">Grid view</string> + <string name="settings_keep_screen_on">Keep screen on</string> + <string name="settings_keep_screen_on_summary">When viewing or editing a note</string> <string name="error_sync">Synchronization failed: %1$s</string> <string name="error_synchronization">Synchronization failed</string> @@ -108,6 +111,7 @@ <string name="pref_key_theme" translatable="false">darkTheme</string> <string name="pref_key_font" translatable="false">font</string> <string name="pref_key_gridview" translatable="false">gridview</string> + <string name="pref_key_keep_screen_on" translatable="false">keepScreenOn</string> <string name="pref_key_font_size" translatable="false">fontSize</string> <string name="pref_key_wifi_only" translatable="false">wifiOnly</string> <string name="pref_key_lock" translatable="false">lock</string> @@ -201,7 +205,6 @@ <string name="append_to_note">Append to note</string> <string name="change_note_title">Change note title</string> <string name="menu_edit_title">Edit title</string> - <string name="settings_gridview">Grid view</string> <string name="simple_security">Security</string> <string name="appearance_and_behavior">Appearance and behavior</string> <string name="simple_synchronization">Synchronization</string> diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 7ecfef1f..810f7ae6 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -67,6 +67,14 @@ android:layout="@layout/item_pref" android:summary="%s" android:title="@string/settings_note_mode" /> + + <it.niedermann.owncloud.notes.branding.BrandedSwitchPreference + android:defaultValue="true" + android:icon="@drawable/ic_baseline_smartphone_24" + android:key="@string/pref_key_keep_screen_on" + android:layout="@layout/item_pref" + android:summary="@string/settings_keep_screen_on_summary" + android:title="@string/settings_keep_screen_on" /> </it.niedermann.owncloud.notes.branding.BrandedPreferenceCategory> <it.niedermann.owncloud.notes.branding.BrandedPreferenceCategory diff --git a/fastlane/metadata/android/en-US/changelogs/3005001.txt b/fastlane/metadata/android/en-US/changelogs/3005001.txt new file mode 100644 index 00000000..72297dfd --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/3005001.txt @@ -0,0 +1 @@ +- 📱️ Add option to not keep screen on (#1531)
\ No newline at end of file |