Battery profiles
This commit is contained in:
parent
2a4db27b06
commit
0b7491c40a
|
@ -546,13 +546,14 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
public void onResume(){
|
public void onResume(){
|
||||||
super.onResume();
|
super.onResume();
|
||||||
boolean liveNotifications = sharedpreferences.getBoolean(Helper.SET_LIVE_NOTIFICATIONS, true);
|
boolean liveNotifications = sharedpreferences.getBoolean(Helper.SET_LIVE_NOTIFICATIONS, true);
|
||||||
|
int batteryProfile = sharedpreferences.getInt(Helper.SET_BATTERY_PROFILE, Helper.BATTERY_PROFILE_NORMAL);
|
||||||
if( type == RetrieveFeedsAsyncTask.Type.PUBLIC){
|
if( type == RetrieveFeedsAsyncTask.Type.PUBLIC){
|
||||||
|
|
||||||
if( getUserVisibleHint() ){
|
if( getUserVisibleHint() ){
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
editor.putBoolean(Helper.SHOULD_CONTINUE_STREAMING_FEDERATED + userId + instance, true);
|
editor.putBoolean(Helper.SHOULD_CONTINUE_STREAMING_FEDERATED + userId + instance, true);
|
||||||
editor.apply();
|
editor.apply();
|
||||||
if(liveNotifications) {
|
if(liveNotifications && batteryProfile == Helper.BATTERY_PROFILE_NORMAL) {
|
||||||
streamingFederatedIntent = new Intent(context, StreamingFederatedTimelineService.class);
|
streamingFederatedIntent = new Intent(context, StreamingFederatedTimelineService.class);
|
||||||
try {
|
try {
|
||||||
context.startService(streamingFederatedIntent);
|
context.startService(streamingFederatedIntent);
|
||||||
|
@ -567,7 +568,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
editor.putBoolean(Helper.SHOULD_CONTINUE_STREAMING_LOCAL + userId + instance, true);
|
editor.putBoolean(Helper.SHOULD_CONTINUE_STREAMING_LOCAL + userId + instance, true);
|
||||||
editor.apply();
|
editor.apply();
|
||||||
if( liveNotifications) {
|
if( liveNotifications && batteryProfile == Helper.BATTERY_PROFILE_NORMAL) {
|
||||||
streamingLocalIntent = new Intent(context, StreamingLocalTimelineService.class);
|
streamingLocalIntent = new Intent(context, StreamingLocalTimelineService.class);
|
||||||
try {
|
try {
|
||||||
context.startService(streamingLocalIntent);
|
context.startService(streamingLocalIntent);
|
||||||
|
@ -620,6 +621,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
if( context == null)
|
if( context == null)
|
||||||
return;
|
return;
|
||||||
boolean liveNotifications = sharedpreferences.getBoolean(Helper.SET_LIVE_NOTIFICATIONS, true);
|
boolean liveNotifications = sharedpreferences.getBoolean(Helper.SET_LIVE_NOTIFICATIONS, true);
|
||||||
|
int batteryProfile = sharedpreferences.getInt(Helper.SET_BATTERY_PROFILE, Helper.BATTERY_PROFILE_NORMAL);
|
||||||
//Store last toot id for home timeline to avoid to notify for those that have been already seen
|
//Store last toot id for home timeline to avoid to notify for those that have been already seen
|
||||||
if (type == RetrieveFeedsAsyncTask.Type.HOME && visible && statuses != null && statuses.size() > 0) {
|
if (type == RetrieveFeedsAsyncTask.Type.HOME && visible && statuses != null && statuses.size() > 0) {
|
||||||
updateStatusLastId(statuses.get(0).getId());
|
updateStatusLastId(statuses.get(0).getId());
|
||||||
|
@ -628,7 +630,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
editor.putBoolean(Helper.SHOULD_CONTINUE_STREAMING_FEDERATED + userId + instance, true);
|
editor.putBoolean(Helper.SHOULD_CONTINUE_STREAMING_FEDERATED + userId + instance, true);
|
||||||
editor.apply();
|
editor.apply();
|
||||||
if(liveNotifications) {
|
if(liveNotifications && batteryProfile == Helper.BATTERY_PROFILE_NORMAL) {
|
||||||
streamingFederatedIntent = new Intent(context, StreamingFederatedTimelineService.class);
|
streamingFederatedIntent = new Intent(context, StreamingFederatedTimelineService.class);
|
||||||
try {
|
try {
|
||||||
context.startService(streamingFederatedIntent);
|
context.startService(streamingFederatedIntent);
|
||||||
|
@ -649,7 +651,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
editor.putBoolean(Helper.SHOULD_CONTINUE_STREAMING_LOCAL + userId + instance, true);
|
editor.putBoolean(Helper.SHOULD_CONTINUE_STREAMING_LOCAL + userId + instance, true);
|
||||||
editor.apply();
|
editor.apply();
|
||||||
if( liveNotifications ) {
|
if( liveNotifications && batteryProfile == Helper.BATTERY_PROFILE_NORMAL) {
|
||||||
streamingLocalIntent = new Intent(context, StreamingLocalTimelineService.class);
|
streamingLocalIntent = new Intent(context, StreamingLocalTimelineService.class);
|
||||||
try {
|
try {
|
||||||
context.startService(streamingLocalIntent);
|
context.startService(streamingLocalIntent);
|
||||||
|
|
|
@ -13,7 +13,9 @@ package fr.gouv.etalab.mastodon.fragments;
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License along with Mastalab; if not,
|
* You should have received a copy of the GNU General Public License along with Mastalab; if not,
|
||||||
* see <http://www.gnu.org/licenses>. */
|
* see <http://www.gnu.org/licenses>. */
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
@ -21,12 +23,16 @@ import android.support.v4.app.Fragment;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.AdapterView;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.RadioGroup;
|
import android.widget.RadioGroup;
|
||||||
import android.widget.SeekBar;
|
import android.widget.SeekBar;
|
||||||
|
import android.widget.Spinner;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import fr.gouv.etalab.mastodon.helper.Helper;
|
|
||||||
import fr.gouv.etalab.mastodon.R;
|
import fr.gouv.etalab.mastodon.R;
|
||||||
|
import fr.gouv.etalab.mastodon.activities.MainActivity;
|
||||||
|
import fr.gouv.etalab.mastodon.helper.Helper;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -37,6 +43,7 @@ public class SettingsOptimizationFragment extends Fragment {
|
||||||
|
|
||||||
|
|
||||||
private Context context;
|
private Context context;
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
|
@ -48,6 +55,51 @@ public class SettingsOptimizationFragment extends Fragment {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Translators
|
||||||
|
final Spinner battery_layout_spinner = rootView.findViewById(R.id.battery_layout_spinner);
|
||||||
|
ArrayAdapter<CharSequence> adapterTrans = ArrayAdapter.createFromResource(getContext(),
|
||||||
|
R.array.battery_profiles, android.R.layout.simple_spinner_item);
|
||||||
|
battery_layout_spinner.setAdapter(adapterTrans);
|
||||||
|
int positionSpinner = sharedpreferences.getInt(Helper.SET_BATTERY_PROFILE, Helper.BATTERY_PROFILE_NORMAL) -1;
|
||||||
|
battery_layout_spinner.setSelection(positionSpinner);
|
||||||
|
battery_layout_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||||
|
@Override
|
||||||
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||||
|
if( count > 0){
|
||||||
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
|
switch (position){
|
||||||
|
case 0:
|
||||||
|
editor.putInt(Helper.SET_BATTERY_PROFILE, Helper.BATTERY_PROFILE_NORMAL);
|
||||||
|
editor.apply();
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
editor.putInt(Helper.SET_BATTERY_PROFILE, Helper.BATTERY_PROFILE_MEDIUM);
|
||||||
|
editor.apply();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
editor.putInt(Helper.SET_BATTERY_PROFILE, Helper.BATTERY_PROFILE_LOW);
|
||||||
|
editor.apply();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if( position < 2 ){
|
||||||
|
try {
|
||||||
|
((MainActivity) context).startSreaming();
|
||||||
|
}catch (Exception ignored){ignored.printStackTrace();}
|
||||||
|
}else{
|
||||||
|
context.sendBroadcast(new Intent("StopLiveNotificationService"));
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void onNothingSelected(AdapterView<?> parent) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
//Status per page
|
//Status per page
|
||||||
SeekBar statusSeekBar = rootView.findViewById(R.id.set_toots_per_page);
|
SeekBar statusSeekBar = rootView.findViewById(R.id.set_toots_per_page);
|
||||||
final TextView set_toots_page_value = rootView.findViewById(R.id.set_toots_page_value);
|
final TextView set_toots_page_value = rootView.findViewById(R.id.set_toots_page_value);
|
||||||
|
|
|
@ -280,6 +280,7 @@ public class Helper {
|
||||||
public static final String SET_DISPLAY_CARD = "set_display_card";
|
public static final String SET_DISPLAY_CARD = "set_display_card";
|
||||||
public static final String SET_DISPLAY_VIDEO_PREVIEWS= "set_display_video_previews";
|
public static final String SET_DISPLAY_VIDEO_PREVIEWS= "set_display_video_previews";
|
||||||
public static final String SET_OLD_DIRECT_TIMELINE = "sset_old_direct_timeline";
|
public static final String SET_OLD_DIRECT_TIMELINE = "sset_old_direct_timeline";
|
||||||
|
public static final String SET_BATTERY_PROFILE = "set_battery_profile";
|
||||||
public static final int S_512KO = 1;
|
public static final int S_512KO = 1;
|
||||||
public static final int S_1MO = 2;
|
public static final int S_1MO = 2;
|
||||||
public static final int S_2MO = 3;
|
public static final int S_2MO = 3;
|
||||||
|
@ -287,6 +288,10 @@ public class Helper {
|
||||||
public static final int ATTACHMENT_WIFI = 2;
|
public static final int ATTACHMENT_WIFI = 2;
|
||||||
public static final int ATTACHMENT_ASK = 3;
|
public static final int ATTACHMENT_ASK = 3;
|
||||||
|
|
||||||
|
public static final int BATTERY_PROFILE_NORMAL = 1;
|
||||||
|
public static final int BATTERY_PROFILE_MEDIUM = 2;
|
||||||
|
public static final int BATTERY_PROFILE_LOW = 3;
|
||||||
|
|
||||||
public static final int THEME_LIGHT = 1;
|
public static final int THEME_LIGHT = 1;
|
||||||
public static final int THEME_DARK = 2;
|
public static final int THEME_DARK = 2;
|
||||||
public static final int THEME_BLACK = 3;
|
public static final int THEME_BLACK = 3;
|
||||||
|
@ -2815,4 +2820,28 @@ public class Helper {
|
||||||
v.getViewTreeObserver().removeOnGlobalLayoutListener(listener);
|
v.getViewTreeObserver().removeOnGlobalLayoutListener(listener);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void changeBatteryProfile(Context context){
|
||||||
|
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
int batteryProfile = sharedpreferences.getInt(Helper.SET_BATTERY_PROFILE, Helper.BATTERY_PROFILE_NORMAL);
|
||||||
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
|
switch (batteryProfile){
|
||||||
|
case BATTERY_PROFILE_NORMAL:
|
||||||
|
editor.putBoolean(Helper.SET_LIVE_NOTIFICATIONS, true);
|
||||||
|
editor.putBoolean(Helper.SET_KEEP_BACKGROUND_PROCESS, true);
|
||||||
|
editor.apply();
|
||||||
|
break;
|
||||||
|
case BATTERY_PROFILE_MEDIUM:
|
||||||
|
editor.putBoolean(Helper.SET_LIVE_NOTIFICATIONS, true);
|
||||||
|
editor.putBoolean(Helper.SET_KEEP_BACKGROUND_PROCESS, false);
|
||||||
|
editor.apply();
|
||||||
|
break;
|
||||||
|
case BATTERY_PROFILE_LOW:
|
||||||
|
editor.putBoolean(Helper.SET_LIVE_NOTIFICATIONS, false);
|
||||||
|
editor.putBoolean(Helper.SET_KEEP_BACKGROUND_PROCESS, false);
|
||||||
|
editor.apply();
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,11 +29,10 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:padding="@dimen/fab_margin"
|
android:paddingLeft="@dimen/fab_margin"
|
||||||
|
android:paddingRight="@dimen/fab_margin"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
tools:ignore="UselessParent">
|
tools:ignore="UselessParent">
|
||||||
|
|
||||||
|
|
||||||
<CheckBox
|
<CheckBox
|
||||||
android:id="@+id/set_share_validation"
|
android:id="@+id/set_share_validation"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
|
|
@ -24,27 +24,37 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:padding="@dimen/fab_margin"
|
android:paddingLeft="@dimen/fab_margin"
|
||||||
|
android:paddingRight="@dimen/fab_margin"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
tools:ignore="UselessParent">
|
tools:ignore="UselessParent">
|
||||||
|
|
||||||
|
<!-- OPTIMIZATION SETTINGS -->
|
||||||
|
<TextView
|
||||||
|
android:text="@string/settings_title_battery"
|
||||||
|
style="?attr/shapeBorder"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
<Spinner
|
||||||
|
android:layout_marginBottom="20dp"
|
||||||
|
android:id="@+id/battery_layout_spinner"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
<!-- OPTIMIZATION SETTINGS -->
|
<!-- OPTIMIZATION SETTINGS -->
|
||||||
<TextView
|
<TextView
|
||||||
android:text="@string/settings_title_optimisation"
|
android:text="@string/settings_title_optimisation"
|
||||||
style="?attr/shapeBorder"
|
style="?attr/shapeBorder"
|
||||||
android:paddingBottom="10dp"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_marginBottom="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
<!-- Toots per page -->
|
<!-- Toots per page -->
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_margin="10dp"
|
android:layout_marginBottom="10dp"
|
||||||
android:typeface="serif"
|
android:typeface="serif"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -58,8 +68,10 @@
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/set_toots_page_value"
|
android:id="@+id/set_toots_page_value"
|
||||||
android:layout_gravity="center"
|
android:gravity="end"
|
||||||
android:layout_width="50dp"
|
android:layout_width="30dp"
|
||||||
|
android:layout_marginEnd="10dp"
|
||||||
|
android:layout_marginRight="10dp"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
<SeekBar
|
<SeekBar
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
|
@ -85,8 +97,10 @@
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/set_accounts_page_value"
|
android:id="@+id/set_accounts_page_value"
|
||||||
android:layout_gravity="center"
|
android:gravity="end"
|
||||||
android:layout_width="50dp"
|
android:layout_width="30dp"
|
||||||
|
android:layout_marginEnd="10dp"
|
||||||
|
android:layout_marginRight="10dp"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
<SeekBar
|
<SeekBar
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
|
@ -112,8 +126,10 @@
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/set_notifications_page_value"
|
android:id="@+id/set_notifications_page_value"
|
||||||
android:layout_gravity="center"
|
android:gravity="end"
|
||||||
android:layout_width="50dp"
|
android:layout_width="30dp"
|
||||||
|
android:layout_marginEnd="10dp"
|
||||||
|
android:layout_marginRight="10dp"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
<SeekBar
|
<SeekBar
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
|
@ -124,8 +140,8 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<!-- Attachment behavior -->
|
<!-- Attachment behavior -->
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_marginTop="5dp"
|
android:layout_marginTop="20dp"
|
||||||
android:layout_marginBottom="5dp"
|
android:layout_marginBottom="10dp"
|
||||||
android:text="@string/set_attachment_action"
|
android:text="@string/set_attachment_action"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content" />
|
||||||
|
|
|
@ -15,11 +15,12 @@
|
||||||
You should have received a copy of the GNU General Public License along with Mastalab; if not,
|
You should have received a copy of the GNU General Public License along with Mastalab; if not,
|
||||||
see <http://www.gnu.org/licenses>.
|
see <http://www.gnu.org/licenses>.
|
||||||
-->
|
-->
|
||||||
<android.support.design.widget.AppBarLayout
|
<LinearLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
|
android:orientation="vertical"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<android.support.design.widget.TabLayout
|
<android.support.design.widget.TabLayout
|
||||||
|
@ -37,4 +38,4 @@
|
||||||
android:layout_marginBottom="70dp"
|
android:layout_marginBottom="70dp"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</android.support.design.widget.AppBarLayout>
|
</LinearLayout>
|
|
@ -342,6 +342,15 @@
|
||||||
<string name="expand_cw">Automatically expand cw</string>
|
<string name="expand_cw">Automatically expand cw</string>
|
||||||
<string name="use_cookies">Allow third-party cookies</string>
|
<string name="use_cookies">Allow third-party cookies</string>
|
||||||
<string name="settings_ui_layout">Layout for timelines: </string>
|
<string name="settings_ui_layout">Layout for timelines: </string>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<string-array name="battery_profiles">
|
||||||
|
<item>Normal battery drain</item>
|
||||||
|
<item>Medium battery drain</item>
|
||||||
|
<item>Low battery drain</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
<string-array name="settings_menu_tabs">
|
<string-array name="settings_menu_tabs">
|
||||||
<item>Tabs</item>
|
<item>Tabs</item>
|
||||||
<item>Menu</item>
|
<item>Menu</item>
|
||||||
|
@ -664,6 +673,7 @@
|
||||||
<string name="no_mail_client">There are no email clients installed.</string>
|
<string name="no_mail_client">There are no email clients installed.</string>
|
||||||
<string name="bug_report_mail">Send a bug report</string>
|
<string name="bug_report_mail">Send a bug report</string>
|
||||||
<string name="account_id_clipbloard">The account id has been copied in the clipboard!</string>
|
<string name="account_id_clipbloard">The account id has been copied in the clipboard!</string>
|
||||||
|
<string name="settings_title_battery">Optimization of the battery</string>
|
||||||
|
|
||||||
<string-array name="filter_expire">
|
<string-array name="filter_expire">
|
||||||
<item>Never</item>
|
<item>Never</item>
|
||||||
|
|
Loading…
Reference in New Issue