New live notifications in settings
This commit is contained in:
parent
35977c9018
commit
088dcd1889
|
@ -55,7 +55,9 @@
|
|||
<service
|
||||
android:name="app.fedilab.android.services.LiveNotificationDelayedService"
|
||||
android:exported="false" />
|
||||
|
||||
<service
|
||||
android:name="app.fedilab.android.services.LiveNotificationService"
|
||||
android:exported="false" />
|
||||
<service
|
||||
android:name="app.fedilab.android.services.BackupStatusService"
|
||||
android:exported="false" />
|
||||
|
@ -70,7 +72,6 @@
|
|||
android:name="app.fedilab.android.services.RestartLiveNotificationReceiver"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="LiveNotificationDelayedService" />
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
|
|
@ -42,7 +42,6 @@ import android.provider.Settings;
|
|||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
|
@ -65,39 +64,30 @@ import android.widget.Toast;
|
|||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.widget.SwitchCompat;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
|
||||
import com.google.android.material.navigation.NavigationView;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
|
||||
import org.apache.poi.sl.usermodel.Line;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
||||
import app.fedilab.android.R;
|
||||
import app.fedilab.android.activities.LanguageActivity;
|
||||
import app.fedilab.android.activities.MainActivity;
|
||||
import app.fedilab.android.activities.SettingsActivity;
|
||||
import app.fedilab.android.animatemenu.interfaces.ScreenShotable;
|
||||
import app.fedilab.android.asynctasks.DownloadTrackingDomainsAsyncTask;
|
||||
import app.fedilab.android.asynctasks.UpdateAccountInfoAsyncTask;
|
||||
import app.fedilab.android.client.Entities.Account;
|
||||
import app.fedilab.android.client.Entities.Status;
|
||||
import app.fedilab.android.filelister.FileListerDialog;
|
||||
import app.fedilab.android.filelister.OnFileSelectedListener;
|
||||
import app.fedilab.android.helper.Helper;
|
||||
import app.fedilab.android.services.LiveNotificationDelayedService;
|
||||
import app.fedilab.android.services.LiveNotificationService;
|
||||
import app.fedilab.android.services.StopLiveNotificationReceiver;
|
||||
import app.fedilab.android.sqlite.AccountDAO;
|
||||
import app.fedilab.android.sqlite.Sqlite;
|
||||
|
@ -106,10 +96,8 @@ import mabbas007.tagsedittext.TagsEditText;
|
|||
|
||||
|
||||
import static android.app.Activity.RESULT_OK;
|
||||
import static android.content.Context.ACTIVITY_SERVICE;
|
||||
import static android.content.Context.MODE_PRIVATE;
|
||||
import static app.fedilab.android.fragments.ContentSettingsFragment.type.ADMIN;
|
||||
import static app.fedilab.android.fragments.ContentSettingsFragment.type.BATTERY;
|
||||
import static app.fedilab.android.fragments.ContentSettingsFragment.type.COMPOSE;
|
||||
import static app.fedilab.android.fragments.ContentSettingsFragment.type.INTERFACE;
|
||||
import static app.fedilab.android.fragments.ContentSettingsFragment.type.NOTIFICATIONS;
|
||||
|
@ -131,7 +119,6 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
|
|||
NOTIFICATIONS,
|
||||
INTERFACE,
|
||||
COMPOSE,
|
||||
BATTERY,
|
||||
LANGUAGE,
|
||||
MENU
|
||||
}
|
||||
|
@ -250,7 +237,7 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
|
|||
LinearLayout settings_admin = rootView.findViewById(R.id.settings_admin);
|
||||
LinearLayout settings_interface = rootView.findViewById(R.id.settings_interface);
|
||||
LinearLayout settings_compose = rootView.findViewById(R.id.settings_compose);
|
||||
LinearLayout settings_battery = rootView.findViewById(R.id.settings_battery);
|
||||
|
||||
|
||||
String title = "";
|
||||
if (type == null || type.equals(TIMELINES)) {
|
||||
|
@ -265,9 +252,6 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
|
|||
} else if (type == INTERFACE) {
|
||||
settings_interface.setVisibility(View.VISIBLE);
|
||||
title = context.getString(R.string.u_interface);
|
||||
} else if (type == BATTERY) {
|
||||
title = context.getString(R.string.battery);
|
||||
settings_battery.setVisibility(View.VISIBLE);
|
||||
} else if (type == COMPOSE) {
|
||||
settings_compose.setVisibility(View.VISIBLE);
|
||||
title = context.getString(R.string.compose);
|
||||
|
@ -1130,24 +1114,32 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
|
|||
}
|
||||
});
|
||||
|
||||
boolean livenotif = sharedpreferences.getBoolean(Helper.SET_LIVE_NOTIFICATIONS, true);
|
||||
final CheckBox set_live_notif = rootView.findViewById(R.id.set_live_notify);
|
||||
set_live_notif.setChecked(livenotif);
|
||||
set_live_notif.setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
boolean notify = sharedpreferences.getBoolean(Helper.SET_NOTIFY, true);
|
||||
final SwitchCompat switchCompatNotify = rootView.findViewById(R.id.set_notify);
|
||||
switchCompatNotify.setChecked(notify);
|
||||
final LinearLayout notification_settings = rootView.findViewById(R.id.notification_settings);
|
||||
if (notify)
|
||||
notification_settings.setVisibility(View.VISIBLE);
|
||||
else
|
||||
notification_settings.setVisibility(View.GONE);
|
||||
switchCompatNotify.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
// Save the state here
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(Helper.SET_LIVE_NOTIFICATIONS, set_live_notif.isChecked());
|
||||
editor.putBoolean(Helper.SHOULD_CONTINUE_STREAMING, set_live_notif.isChecked());
|
||||
editor.putBoolean(Helper.SET_NOTIFY, isChecked);
|
||||
editor.apply();
|
||||
if (set_live_notif.isChecked()) {
|
||||
if (isChecked) {
|
||||
notification_settings.setVisibility(View.VISIBLE);
|
||||
try {
|
||||
Intent streamingIntent = new Intent(context, LiveNotificationDelayedService.class);
|
||||
context.startService(streamingIntent);
|
||||
} catch (Exception ignored) {
|
||||
ignored.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
}else {
|
||||
notification_settings.setVisibility(View.GONE);
|
||||
context.sendBroadcast(new Intent(context, StopLiveNotificationReceiver.class));
|
||||
if (Build.VERSION.SDK_INT >= 26) {
|
||||
NotificationManager notif = ((NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE));
|
||||
|
@ -1158,22 +1150,57 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
|
|||
}
|
||||
}
|
||||
});
|
||||
final LinearLayout set_live_notify_text = rootView.findViewById(R.id.set_live_notify_text);
|
||||
set_live_notify_text.setOnClickListener(v -> set_live_notif.performClick());
|
||||
|
||||
boolean keep_background_process = sharedpreferences.getBoolean(Helper.SET_KEEP_BACKGROUND_PROCESS, true);
|
||||
final CheckBox set_keep_background_process = rootView.findViewById(R.id.set_keep_background_process);
|
||||
set_keep_background_process.setChecked(keep_background_process);
|
||||
set_keep_background_process.setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
|
||||
|
||||
//Live notification mode
|
||||
final Spinner set_live_type = rootView.findViewById(R.id.set_live_type);
|
||||
String[] labels = {context.getString(R.string.live_notif), context.getString(R.string.live_delayed), context.getString(R.string.no_live_notif)};
|
||||
ArrayAdapter<String> adapterLive = new ArrayAdapter<>(context,
|
||||
android.R.layout.simple_spinner_dropdown_item,labels );
|
||||
|
||||
LinearLayout live_notif_per_account = rootView.findViewById(R.id.live_notif_per_account);
|
||||
set_live_type.setAdapter(adapterLive);
|
||||
if( Helper.liveNotifType(context) == Helper.NOTIF_NONE){
|
||||
live_notif_per_account.setVisibility(View.GONE);
|
||||
}
|
||||
set_live_type.setSelection(Helper.liveNotifType(context));
|
||||
set_live_type.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||
if (count2 > 0) {
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(Helper.SET_KEEP_BACKGROUND_PROCESS, set_keep_background_process.isChecked());
|
||||
switch (position) {
|
||||
case Helper.NOTIF_LIVE:
|
||||
editor.putBoolean(Helper.SET_LIVE_NOTIFICATIONS, true);
|
||||
editor.putBoolean(Helper.SET_DELAYED_NOTIFICATIONS, false);
|
||||
live_notif_per_account.setVisibility(View.VISIBLE);
|
||||
editor.apply();
|
||||
break;
|
||||
case Helper.NOTIF_DELAYED:
|
||||
editor.putBoolean(Helper.SET_LIVE_NOTIFICATIONS, false);
|
||||
editor.putBoolean(Helper.SET_DELAYED_NOTIFICATIONS, true);
|
||||
live_notif_per_account.setVisibility(View.VISIBLE);
|
||||
editor.apply();
|
||||
break;
|
||||
case Helper.NOTIF_NONE:
|
||||
editor.putBoolean(Helper.SET_LIVE_NOTIFICATIONS, false);
|
||||
editor.putBoolean(Helper.SET_DELAYED_NOTIFICATIONS, false);
|
||||
live_notif_per_account.setVisibility(View.GONE);
|
||||
editor.apply();
|
||||
break;
|
||||
}
|
||||
}
|
||||
count2++;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNothingSelected(AdapterView<?> parent) {
|
||||
|
||||
}
|
||||
});
|
||||
final LinearLayout set_keep_background_process_text = rootView.findViewById(R.id.set_keep_background_process_text);
|
||||
set_keep_background_process_text.setOnClickListener(v -> set_keep_background_process.performClick());
|
||||
|
||||
|
||||
|
||||
boolean capitalize = sharedpreferences.getBoolean(Helper.SET_CAPITALIZE, true);
|
||||
|
@ -1708,27 +1735,7 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable
|
|||
});
|
||||
|
||||
|
||||
boolean notify = sharedpreferences.getBoolean(Helper.SET_NOTIFY, true);
|
||||
final SwitchCompat switchCompatNotify = rootView.findViewById(R.id.set_notify);
|
||||
switchCompatNotify.setChecked(notify);
|
||||
final LinearLayout notification_settings = rootView.findViewById(R.id.notification_settings);
|
||||
if (notify)
|
||||
notification_settings.setVisibility(View.VISIBLE);
|
||||
else
|
||||
notification_settings.setVisibility(View.GONE);
|
||||
switchCompatNotify.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
// Save the state here
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(Helper.SET_NOTIFY, isChecked);
|
||||
editor.apply();
|
||||
if (isChecked)
|
||||
notification_settings.setVisibility(View.VISIBLE);
|
||||
else
|
||||
notification_settings.setVisibility(View.GONE);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
boolean notif_follow = sharedpreferences.getBoolean(Helper.SET_NOTIF_FOLLOW, true);
|
||||
|
|
|
@ -344,6 +344,7 @@ public class Helper {
|
|||
public static final String INSTANCE_VERSION = "instance_version";
|
||||
public static final String NEWS_ACCOUNT_ID = "news_account_id";
|
||||
public static final String SET_LIVE_NOTIFICATIONS = "set_live_notifications";
|
||||
public static final String SET_DELAYED_NOTIFICATIONS = "set_delayed_notifications";
|
||||
public static final String SET_DISABLE_GIF = "set_disable_gif";
|
||||
public static final String SET_DISABLE_ANIMATED_EMOJI = "set_disable_animated_emoji";
|
||||
public static final String SET_CAPITALIZE = "set_capitalize";
|
||||
|
@ -358,7 +359,6 @@ public class Helper {
|
|||
public static final String SET_CUSTOM_SHARING_URL = "set_custom_sharing_url";
|
||||
public static final String SET_NOTIF_SOUND = "set_notif_sound";
|
||||
public static final String SET_ENABLE_TIME_SLOT = "set_enable_time_slot";
|
||||
public static final String SET_KEEP_BACKGROUND_PROCESS = "set_keep_background_process";
|
||||
public static final String SET_CLEAR_CACHE_EXIT = "set_clear_cache_exit";
|
||||
public static final String SET_DISPLAY_EMOJI = "set_display_emoji";
|
||||
public static final String SET_DISPLAY_CARD = "set_display_card";
|
||||
|
@ -406,6 +406,10 @@ public class Helper {
|
|||
public static final int THEME_DARK = 2;
|
||||
public static final int THEME_BLACK = 3;
|
||||
|
||||
public static final int NOTIF_LIVE = 2;
|
||||
public static final int NOTIF_DELAYED = 1;
|
||||
public static final int NOTIF_NONE = 0;
|
||||
|
||||
public static final int LED_COLOUR = 0;
|
||||
|
||||
public static final int TRANS_YANDEX = 0;
|
||||
|
@ -545,6 +549,19 @@ public class Helper {
|
|||
}
|
||||
|
||||
|
||||
public static int liveNotifType(Context context){
|
||||
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
boolean live = sharedpreferences.getBoolean(Helper.SET_LIVE_NOTIFICATIONS, false );
|
||||
boolean delayed = sharedpreferences.getBoolean(Helper.SET_DELAYED_NOTIFICATIONS, true );
|
||||
if( delayed){
|
||||
return Helper.NOTIF_DELAYED;
|
||||
}else if( live ){
|
||||
return Helper.NOTIF_LIVE;
|
||||
}else {
|
||||
return Helper.NOTIF_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts emojis in input to unicode
|
||||
*
|
||||
|
|
|
@ -79,7 +79,6 @@ public class LiveNotificationDelayedService extends Service {
|
|||
|
||||
public static String CHANNEL_ID = "live_notifications";
|
||||
protected Account account;
|
||||
boolean backgroundProcess;
|
||||
private NotificationChannel channel;
|
||||
public static int totalAccount = 0;
|
||||
public static int eventsCount = 0;
|
||||
|
@ -89,13 +88,11 @@ public class LiveNotificationDelayedService extends Service {
|
|||
public void onCreate() {
|
||||
super.onCreate();
|
||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
backgroundProcess = sharedpreferences.getBoolean(Helper.SET_KEEP_BACKGROUND_PROCESS, true);
|
||||
}
|
||||
|
||||
private void startStream() {
|
||||
|
||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
backgroundProcess = sharedpreferences.getBoolean(Helper.SET_KEEP_BACKGROUND_PROCESS, true);
|
||||
boolean liveNotifications = sharedpreferences.getBoolean(Helper.SET_LIVE_NOTIFICATIONS, true);
|
||||
SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||
if (liveNotifications) {
|
||||
|
@ -129,7 +126,6 @@ public class LiveNotificationDelayedService extends Service {
|
|||
if (intent == null || intent.getBooleanExtra("stop", false)) {
|
||||
stopSelf();
|
||||
}
|
||||
if (backgroundProcess) {
|
||||
if (Build.VERSION.SDK_INT >= 26) {
|
||||
channel = new NotificationChannel(CHANNEL_ID,
|
||||
"Live notifications",
|
||||
|
@ -157,10 +153,6 @@ public class LiveNotificationDelayedService extends Service {
|
|||
}
|
||||
startStream();
|
||||
return START_STICKY;
|
||||
} else {
|
||||
startStream();
|
||||
return START_NOT_STICKY;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -173,10 +165,8 @@ public class LiveNotificationDelayedService extends Service {
|
|||
@Override
|
||||
public void onTaskRemoved(Intent rootIntent) {
|
||||
super.onTaskRemoved(rootIntent);
|
||||
if (backgroundProcess) {
|
||||
restart();
|
||||
}
|
||||
}
|
||||
|
||||
private void restart() {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
|
||||
|
|
|
@ -95,7 +95,6 @@ public class LiveNotificationService extends Service implements NetworkStateRece
|
|||
|
||||
public static String CHANNEL_ID = "live_notifications";
|
||||
protected Account account;
|
||||
boolean backgroundProcess;
|
||||
private static HashMap<String, Thread> threads = new HashMap<>();
|
||||
private static HashMap<String, String> lastNotification = new HashMap<>();
|
||||
private NetworkStateReceiver networkStateReceiver;
|
||||
|
@ -111,13 +110,11 @@ public class LiveNotificationService extends Service implements NetworkStateRece
|
|||
networkStateReceiver.addListener(this);
|
||||
registerReceiver(networkStateReceiver, new IntentFilter(android.net.ConnectivityManager.CONNECTIVITY_ACTION));
|
||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
backgroundProcess = sharedpreferences.getBoolean(Helper.SET_KEEP_BACKGROUND_PROCESS, true);
|
||||
}
|
||||
|
||||
private void startStream() {
|
||||
|
||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
backgroundProcess = sharedpreferences.getBoolean(Helper.SET_KEEP_BACKGROUND_PROCESS, true);
|
||||
boolean liveNotifications = sharedpreferences.getBoolean(Helper.SET_LIVE_NOTIFICATIONS, true);
|
||||
SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||
if (liveNotifications) {
|
||||
|
@ -138,7 +135,6 @@ public class LiveNotificationService extends Service implements NetworkStateRece
|
|||
if (intent == null || intent.getBooleanExtra("stop", false)) {
|
||||
stopSelf();
|
||||
}
|
||||
if (backgroundProcess) {
|
||||
if (Build.VERSION.SDK_INT >= 26) {
|
||||
channel = new NotificationChannel(CHANNEL_ID,
|
||||
"Live notifications",
|
||||
|
@ -166,9 +162,6 @@ public class LiveNotificationService extends Service implements NetworkStateRece
|
|||
startForeground(1, notification);
|
||||
}
|
||||
return START_STICKY;
|
||||
} else {
|
||||
return START_NOT_STICKY;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -188,10 +181,8 @@ public class LiveNotificationService extends Service implements NetworkStateRece
|
|||
@Override
|
||||
public void onTaskRemoved(Intent rootIntent) {
|
||||
super.onTaskRemoved(rootIntent);
|
||||
if (backgroundProcess) {
|
||||
restart();
|
||||
}
|
||||
}
|
||||
|
||||
private void restart() {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
|
||||
|
|
|
@ -35,7 +35,14 @@ public class RestartLiveNotificationReceiver extends BroadcastReceiver {
|
|||
public void onReceive(Context context, Intent intent) {
|
||||
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
boolean liveNotifications = sharedpreferences.getBoolean(Helper.SET_LIVE_NOTIFICATIONS, true);
|
||||
if (liveNotifications) {
|
||||
boolean delayedNotifications = sharedpreferences.getBoolean(Helper.SET_DELAYED_NOTIFICATIONS, true);
|
||||
if (delayedNotifications) {
|
||||
Intent streamingServiceIntent = new Intent(context.getApplicationContext(), LiveNotificationDelayedService.class);
|
||||
try {
|
||||
context.startService(streamingServiceIntent);
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}else if (liveNotifications) {
|
||||
Intent streamingServiceIntent = new Intent(context.getApplicationContext(), LiveNotificationService.class);
|
||||
try {
|
||||
context.startService(streamingServiceIntent);
|
||||
|
|
|
@ -537,7 +537,30 @@
|
|||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<!-- Choose stream -->
|
||||
<LinearLayout
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:textSize="16sp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/set_live_type_title" />
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/set_live_type"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/live_notif_per_account"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/settings_checkbox_margin"
|
||||
|
@ -571,6 +594,9 @@
|
|||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:visibility="gone"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -1719,85 +1745,6 @@
|
|||
</LinearLayout>
|
||||
|
||||
|
||||
<!-- BATTERY -->
|
||||
<LinearLayout
|
||||
android:id="@+id/settings_battery"
|
||||
android:layout_width="match_parent"
|
||||
android:visibility="gone"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/settings_checkbox_margin"
|
||||
android:layout_marginBottom="@dimen/settings_checkbox_margin"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/set_live_notify"
|
||||
android:layout_width="wrap_content"
|
||||
android:textSize="16sp"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/set_live_notify_text"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:textSize="16sp"
|
||||
android:text="@string/live_notif"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<TextView
|
||||
android:textColor="@color/mastodonC2"
|
||||
android:text="@string/live_notif_indication"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/settings_checkbox_margin"
|
||||
android:layout_marginBottom="@dimen/settings_checkbox_margin"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/set_keep_background_process"
|
||||
android:layout_width="wrap_content"
|
||||
android:textSize="16sp"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/set_keep_background_process_text"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:textSize="16sp"
|
||||
android:text="@string/set_keep_background_process"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
<TextView
|
||||
android:textColor="@color/mastodonC2"
|
||||
android:text="@string/set_keep_background_process_indication"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<!-- COMPOSE -->
|
||||
<LinearLayout
|
||||
android:id="@+id/settings_compose"
|
||||
|
|
|
@ -660,7 +660,6 @@
|
|||
<string name="comment">Comment</string>
|
||||
<string name="peertube_instance">Peertube instance</string>
|
||||
<string name="set_display_direct">Display private messages timeline</string>
|
||||
<string name="set_keep_background_process">Keep background process when app is closed</string>
|
||||
<string name="no_comments">Be the first to leave a comment on this video with the top right button!</string>
|
||||
<string name="number_view_video">%s views</string>
|
||||
<string name="duration_video">Duration: %s</string>
|
||||
|
@ -1209,4 +1208,8 @@
|
|||
<string name="set_invidious_host">Enter your custom host or leave blank for using invidio.us</string>
|
||||
<string name="set_hide_status_bar">Hide Fedilab notification bar</string>
|
||||
<string name="set_hide_status_bar_indication">For hiding the remaining notification in the status bar, click on the eye icon button then uncheck: \"Display in status bar\"</string>
|
||||
<string name="set_live_type_title">Enable delayed notifications</string>
|
||||
<string name="set_live_type_indication">Notifications will be delayed every 30 seconds. That will allow to drain less battery.</string>
|
||||
<string name="live_delayed">Live notifications delayed</string>
|
||||
<string name="no_live_notif">No live notifications</string>
|
||||
</resources>
|
Loading…
Reference in New Issue