Extract duplicate setActivityTitle code to own function

This commit is contained in:
Stypox 2020-09-07 15:25:26 +02:00
parent 628575dc5f
commit 408e819d32
No known key found for this signature in database
GPG Key ID: 4BDF1B40A49FDD23
4 changed files with 31 additions and 39 deletions

View File

@ -5,12 +5,12 @@ import android.os.Bundle;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.view.View; import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceFragmentCompat;
import org.schabi.newpipe.MainActivity; import org.schabi.newpipe.MainActivity;
import org.schabi.newpipe.util.ThemeHelper;
public abstract class BasePreferenceFragment extends PreferenceFragmentCompat { public abstract class BasePreferenceFragment extends PreferenceFragmentCompat {
protected final String TAG = getClass().getSimpleName() + "@" + Integer.toHexString(hashCode()); protected final String TAG = getClass().getSimpleName() + "@" + Integer.toHexString(hashCode());
@ -25,24 +25,16 @@ public abstract class BasePreferenceFragment extends PreferenceFragmentCompat {
} }
@Override @Override
public void onViewCreated(final View view, @Nullable final Bundle savedInstanceState) { public void onViewCreated(@NonNull final View rootView,
super.onViewCreated(view, savedInstanceState); @Nullable final Bundle savedInstanceState) {
super.onViewCreated(rootView, savedInstanceState);
setDivider(null); setDivider(null);
updateTitle(); ThemeHelper.setTitleToAppCompatActivity(getActivity(), getPreferenceScreen().getTitle());
} }
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
updateTitle(); ThemeHelper.setTitleToAppCompatActivity(getActivity(), getPreferenceScreen().getTitle());
}
private void updateTitle() {
if (getActivity() instanceof AppCompatActivity) {
final ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
if (actionBar != null) {
actionBar.setTitle(getPreferenceScreen().getTitle());
}
}
} }
} }

View File

@ -22,9 +22,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.widget.AppCompatImageView; import androidx.appcompat.widget.AppCompatImageView;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
@ -117,7 +115,8 @@ public class PeertubeInstanceListFragment extends Fragment {
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
updateTitle(); ThemeHelper.setTitleToAppCompatActivity(getActivity(),
getString(R.string.peertube_instance_url_title));
} }
@Override @Override
@ -176,15 +175,6 @@ public class PeertubeInstanceListFragment extends Fragment {
sharedPreferences.edit().putBoolean(Constants.KEY_MAIN_PAGE_CHANGE, true).apply(); sharedPreferences.edit().putBoolean(Constants.KEY_MAIN_PAGE_CHANGE, true).apply();
} }
private void updateTitle() {
if (getActivity() instanceof AppCompatActivity) {
final ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
if (actionBar != null) {
actionBar.setTitle(R.string.peertube_instance_url_title);
}
}
}
private void saveChanges() { private void saveChanges() {
final JsonStringWriter jsonWriter = JsonWriter.string().object().array("instances"); final JsonStringWriter jsonWriter = JsonWriter.string().object().array("instances");
for (final PeertubeInstance instance : instanceList) { for (final PeertubeInstance instance : instanceList) {

View File

@ -16,9 +16,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.widget.AppCompatImageView; import androidx.appcompat.widget.AppCompatImageView;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
@ -92,7 +90,8 @@ public class ChooseTabsFragment extends Fragment {
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
updateTitle(); ThemeHelper.setTitleToAppCompatActivity(getActivity(),
getString(R.string.main_page_content));
} }
@Override @Override
@ -137,15 +136,6 @@ public class ChooseTabsFragment extends Fragment {
tabList.addAll(tabsManager.getTabs()); tabList.addAll(tabsManager.getTabs());
} }
private void updateTitle() {
if (getActivity() instanceof AppCompatActivity) {
final ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
if (actionBar != null) {
actionBar.setTitle(R.string.main_page_content);
}
}
}
private void saveChanges() { private void saveChanges() {
tabsManager.saveTabs(tabList); tabsManager.saveTabs(tabList);
} }

View File

@ -19,6 +19,7 @@
package org.schabi.newpipe.util; package org.schabi.newpipe.util;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
@ -26,7 +27,10 @@ import android.util.TypedValue;
import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper;
import androidx.annotation.AttrRes; import androidx.annotation.AttrRes;
import androidx.annotation.Nullable;
import androidx.annotation.StyleRes; import androidx.annotation.StyleRes;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
@ -231,4 +235,20 @@ public final class ThemeHelper {
return PreferenceManager.getDefaultSharedPreferences(context) return PreferenceManager.getDefaultSharedPreferences(context)
.getString(themeKey, defaultTheme); .getString(themeKey, defaultTheme);
} }
/**
* Sets the title to the activity, if the activity is an {@link AppCompatActivity} and has an
* action bar.
* @param activity the activity to set the title of
* @param title the title to set to the activity
*/
public static void setTitleToAppCompatActivity(@Nullable final Activity activity,
final CharSequence title) {
if (activity instanceof AppCompatActivity) {
final ActionBar actionBar = ((AppCompatActivity) activity).getSupportActionBar();
if (actionBar != null) {
actionBar.setTitle(title);
}
}
}
} }