Add widget stack activity
ADd settings option for widget stack
This commit is contained in:
@@ -728,7 +728,7 @@ brave_java_resources = [
|
||||
"java/res/layout/fragment_brave_rewards_onboarding.xml",
|
||||
"java/res/layout/fragment_cross_promotional_modal_dialog.xml",
|
||||
"java/res/layout/fragment_crypto_widget_bottom_sheet_dialog.xml",
|
||||
"java/res/layout/fragment_ntp_widget_bottom_sheet_dialog.xml",
|
||||
"java/res/layout/activity_ntp_widget_stack.xml",
|
||||
"java/res/layout/fragment_onboarding_v2.xml",
|
||||
"java/res/layout/fragment_qr_code_share.xml",
|
||||
"java/res/layout/fragment_rate_dialog.xml",
|
||||
|
||||
@@ -66,11 +66,11 @@ brave_java_sources = [
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/IncognitoNewTabPageView.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/widget/NTPWidgetAdapter.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/widget/NTPWidgetBottomSheetDialogFragment.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/widget/NTPWidgetItem.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/widget/NTPWidgetListAdapter.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/widget/NTPWidgetManager.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/widget/SwipeAndDragHelper.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/widget/NTPWidgetStackActivity.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp_background_images/NTPBackgroundImagesBridge.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp_background_images/RewardsBottomSheetDialogFragment.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp_background_images/model/BackgroundImage.java",
|
||||
|
||||
@@ -39,6 +39,13 @@
|
||||
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name="org.chromium.chrome.browser.ntp.widget.NTPWidgetStackActivity"
|
||||
android:theme="@style/Theme.Chromium.Activity"
|
||||
android:screenOrientation="sensorPortrait">
|
||||
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name="org.chromium.chrome.browser.widget.crypto.binance.BinanceActivity"
|
||||
android:theme="@style/Theme.Chromium.Activity.Fullscreen">
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.ntp;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
@@ -62,7 +63,7 @@ import org.chromium.chrome.browser.native_page.ContextMenuManager;
|
||||
import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder;
|
||||
import org.chromium.chrome.browser.ntp.NewTabPageLayout;
|
||||
import org.chromium.chrome.browser.ntp.widget.NTPWidgetAdapter;
|
||||
import org.chromium.chrome.browser.ntp.widget.NTPWidgetBottomSheetDialogFragment;
|
||||
import org.chromium.chrome.browser.ntp.widget.NTPWidgetStackActivity;
|
||||
import org.chromium.chrome.browser.ntp.widget.NTPWidgetItem;
|
||||
import org.chromium.chrome.browser.ntp.widget.NTPWidgetManager;
|
||||
import org.chromium.chrome.browser.ntp_background_images.NTPBackgroundImagesBridge;
|
||||
@@ -136,6 +137,7 @@ public class BraveNewTabPageLayout extends NewTabPageLayout {
|
||||
private BinanceNativeWorker mBinanceNativeWorker;
|
||||
private CountDownTimer countDownTimer = null;
|
||||
private List<NTPWidgetItem> widgetList = new ArrayList<NTPWidgetItem>();
|
||||
public static final int NTP_WIDGET_STACK_CODE = 3333;
|
||||
|
||||
public BraveNewTabPageLayout(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
@@ -365,6 +367,19 @@ public class BraveNewTabPageLayout extends NewTabPageLayout {
|
||||
super.onDetachedFromWindow();
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void onWindowFocusChanged(boolean hasWindowFocus) {
|
||||
// super.onWindowFocusChanged(hasWindowFocus);
|
||||
// if (hasWindowFocus) {
|
||||
// //onresume() called
|
||||
// showWidgets();
|
||||
// Log.e("NTP", "onResume new tab");
|
||||
// } else {
|
||||
// // onPause() called
|
||||
// Log.e("NTP", "onPause new tab");
|
||||
// }
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
if (sponsoredTab != null && NTPUtil.shouldEnableNTPFeature()) {
|
||||
@@ -714,13 +729,21 @@ public class BraveNewTabPageLayout extends NewTabPageLayout {
|
||||
@Override
|
||||
public void onMenuEdit() {
|
||||
cancelTimer();
|
||||
NTPWidgetBottomSheetDialogFragment ntpWidgetBottomSheetDialogFragment =
|
||||
NTPWidgetBottomSheetDialogFragment.newInstance();
|
||||
ntpWidgetBottomSheetDialogFragment.setNTPWidgetListener(ntpWidgetListener);
|
||||
// ntpWidgetBottomSheetDialogFragment.setWidgetList(widgetList);
|
||||
ntpWidgetBottomSheetDialogFragment.show(
|
||||
((BraveActivity) mActivity).getSupportFragmentManager(),
|
||||
"NTPWidgetBottomSheetDialogFragment");
|
||||
// final FragmentManager fm = ((BraveActivity) mActivity).getSupportFragmentManager();
|
||||
// Fragment auxiliary = new Fragment() {
|
||||
// @Override
|
||||
// public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
// //DO WHATEVER YOU NEED
|
||||
// super.onActivityResult(requestCode, resultCode, data);
|
||||
// fm.beginTransaction().remove(this).commit();
|
||||
// }
|
||||
// };
|
||||
// fm.beginTransaction().add(auxiliary, "FRAGMENT_TAG").commit();
|
||||
// fm.executePendingTransactions();
|
||||
|
||||
// auxiliary.startActivityForResult(new Intent(mActivity, NTPWidgetStackActivity.class), NTP_WIDGET_STACK_CODE);
|
||||
Intent ntpWidgetStackActivityIntent = new Intent(mActivity, NTPWidgetStackActivity.class);
|
||||
mActivity.startActivity(ntpWidgetStackActivityIntent);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -744,16 +767,6 @@ public class BraveNewTabPageLayout extends NewTabPageLayout {
|
||||
public void onMenuDisconnect() {
|
||||
mBinanceNativeWorker.revokeToken();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBottomSheetDismiss() {
|
||||
showWidgets();
|
||||
cancelTimer();
|
||||
if (ntpWidgetViewPager.getCurrentItem()
|
||||
== NTPWidgetManager.getInstance().getBinanceWidget()) {
|
||||
startTimer();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private BinanceObserver mBinanaceObserver = new BinanceObserver() {
|
||||
|
||||
@@ -53,8 +53,6 @@ public class NTPWidgetAdapter extends PagerAdapter {
|
||||
void onMenuRefreshData();
|
||||
|
||||
void onMenuDisconnect();
|
||||
|
||||
void onBottomSheetDismiss();
|
||||
}
|
||||
|
||||
public void setNTPWidgetListener(NTPWidgetListener ntpWidgetListener) {
|
||||
|
||||
@@ -21,6 +21,7 @@ import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ntp.widget.NTPWidgetAdapter;
|
||||
import org.chromium.chrome.browser.ntp.widget.NTPWidgetManager;
|
||||
import org.chromium.chrome.browser.ntp.widget.SwipeAndDragHelper;
|
||||
import org.chromium.chrome.browser.ntp.widget.NTPWidgetStackActivity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -29,7 +30,7 @@ public class NTPWidgetListAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
private List<String> widgetList;
|
||||
private ItemTouchHelper touchHelper;
|
||||
private NTPWidgetAdapter.NTPWidgetListener ntpWidgetListener;
|
||||
private NTPWidgetBottomSheetDialogFragment
|
||||
private NTPWidgetStackActivity
|
||||
.NTPWidgetStackUpdateListener ntpWidgetStackUpdateListener;
|
||||
private int ntpWidgetType;
|
||||
|
||||
@@ -38,7 +39,7 @@ public class NTPWidgetListAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
}
|
||||
|
||||
public void setNTPWidgetStackUpdateListener(
|
||||
NTPWidgetBottomSheetDialogFragment
|
||||
NTPWidgetStackActivity
|
||||
.NTPWidgetStackUpdateListener ntpWidgetStackUpdateListener) {
|
||||
this.ntpWidgetStackUpdateListener = ntpWidgetStackUpdateListener;
|
||||
}
|
||||
@@ -62,7 +63,7 @@ public class NTPWidgetListAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
NTPWidgetItem ntpWidgetItem = NTPWidgetManager.mWidgetsMap.get(widgetList.get(position));
|
||||
ntpWidgetViewHolder.widgetTitle.setText(ntpWidgetItem.getWidgetTitle());
|
||||
ntpWidgetViewHolder.widgetText.setText(ntpWidgetItem.getWidgetText());
|
||||
if (ntpWidgetType == NTPWidgetBottomSheetDialogFragment.USED_WIDGET) {
|
||||
if (ntpWidgetType == NTPWidgetStackActivity.USED_WIDGET) {
|
||||
ntpWidgetViewHolder.widgetReorderView.setImageResource(R.drawable.ic_sort);
|
||||
ntpWidgetViewHolder.widgetReorderView.setOnTouchListener(new View.OnTouchListener() {
|
||||
@Override
|
||||
@@ -73,7 +74,7 @@ public class NTPWidgetListAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
return false;
|
||||
}
|
||||
});
|
||||
} else if (ntpWidgetType == NTPWidgetBottomSheetDialogFragment.AVAILABLE_WIDGET) {
|
||||
} else if (ntpWidgetType == NTPWidgetStackActivity.AVAILABLE_WIDGET) {
|
||||
ntpWidgetViewHolder.widgetReorderView.setImageResource(R.drawable.ic_add);
|
||||
ntpWidgetViewHolder.widgetReorderView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
||||
+46
-49
@@ -1,24 +1,24 @@
|
||||
/* Copyright (c) 2020 The Brave Authors. All rights reserved.
|
||||
/**
|
||||
* Copyright (c) 2020 The Brave Authors. All rights reserved.
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package org.chromium.chrome.browser.ntp.widget;
|
||||
|
||||
import android.content.DialogInterface;
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ntp.widget.NTPWidgetAdapter;
|
||||
@@ -28,7 +28,7 @@ import org.chromium.chrome.browser.ntp.widget.NTPWidgetManager;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class NTPWidgetBottomSheetDialogFragment extends BottomSheetDialogFragment {
|
||||
public class NTPWidgetStackActivity extends AppCompatActivity {
|
||||
private NTPWidgetAdapter.NTPWidgetListener ntpWidgetListener;
|
||||
private RecyclerView usedWidgetsRecyclerView;
|
||||
private RecyclerView availableWidgetsRecyclerView;
|
||||
@@ -46,26 +46,24 @@ public class NTPWidgetBottomSheetDialogFragment extends BottomSheetDialogFragmen
|
||||
this.ntpWidgetListener = ntpWidgetListener;
|
||||
}
|
||||
|
||||
public static NTPWidgetBottomSheetDialogFragment newInstance() {
|
||||
return new NTPWidgetBottomSheetDialogFragment();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
||||
@Nullable Bundle savedInstanceState) {
|
||||
return inflater.inflate(R.layout.fragment_ntp_widget_bottom_sheet_dialog, container, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_ntp_widget_stack);
|
||||
|
||||
List<String> usedWidgetList = NTPWidgetManager.getInstance().getUsedWidgets();
|
||||
List<String> availableWidgetList = NTPWidgetManager.getInstance().getAvailableWidgets();
|
||||
|
||||
usedWidgetsRecyclerView = view.findViewById(R.id.used_widget_list);
|
||||
usedWidgetsRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
ImageView backButton = findViewById(R.id.back_button);
|
||||
backButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
|
||||
usedWidgetsRecyclerView = findViewById(R.id.used_widget_list);
|
||||
usedWidgetsRecyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||
usedNtpWidgetListAdapter = new NTPWidgetListAdapter();
|
||||
SwipeAndDragHelper swipeAndDragHelper = new SwipeAndDragHelper(usedNtpWidgetListAdapter);
|
||||
ItemTouchHelper touchHelper = new ItemTouchHelper(swipeAndDragHelper);
|
||||
@@ -77,10 +75,10 @@ public class NTPWidgetBottomSheetDialogFragment extends BottomSheetDialogFragmen
|
||||
touchHelper.attachToRecyclerView(usedWidgetsRecyclerView);
|
||||
usedNtpWidgetListAdapter.setWidgetList(usedWidgetList);
|
||||
|
||||
availableWidgetLayout = view.findViewById(R.id.available_widget_layout);
|
||||
availableWidgetLayout = findViewById(R.id.available_widget_layout);
|
||||
|
||||
availableWidgetsRecyclerView = view.findViewById(R.id.available_widget_list);
|
||||
availableWidgetsRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||
availableWidgetsRecyclerView = findViewById(R.id.available_widget_list);
|
||||
availableWidgetsRecyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||
availableNtpWidgetListAdapter = new NTPWidgetListAdapter();
|
||||
availableNtpWidgetListAdapter.setNTPWidgetListener(ntpWidgetListener);
|
||||
availableNtpWidgetListAdapter.setNTPWidgetStackUpdateListener(ntpWidgetStackUpdateListener);
|
||||
@@ -95,33 +93,32 @@ public class NTPWidgetBottomSheetDialogFragment extends BottomSheetDialogFragmen
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||
super.onDismiss(dialog);
|
||||
protected void onStop() {
|
||||
for (int i = 0; i < usedNtpWidgetListAdapter.getWidgetList().size(); i++) {
|
||||
NTPWidgetManager.getInstance().setWidget(
|
||||
usedNtpWidgetListAdapter.getWidgetList().get(i), i);
|
||||
usedNtpWidgetListAdapter.getWidgetList().get(i), i);
|
||||
}
|
||||
ntpWidgetListener.onBottomSheetDismiss();
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
private NTPWidgetStackUpdateListener ntpWidgetStackUpdateListener =
|
||||
new NTPWidgetStackUpdateListener() {
|
||||
@Override
|
||||
public void onWidgetStackUpdate() {
|
||||
List<String> usedWidgetList = NTPWidgetManager.getInstance().getUsedWidgets();
|
||||
List<String> availableWidgetList =
|
||||
NTPWidgetManager.getInstance().getAvailableWidgets();
|
||||
new NTPWidgetStackUpdateListener() {
|
||||
@Override
|
||||
public void onWidgetStackUpdate() {
|
||||
List<String> usedWidgetList = NTPWidgetManager.getInstance().getUsedWidgets();
|
||||
List<String> availableWidgetList =
|
||||
NTPWidgetManager.getInstance().getAvailableWidgets();
|
||||
|
||||
usedNtpWidgetListAdapter.setWidgetList(usedWidgetList);
|
||||
usedNtpWidgetListAdapter.notifyDataSetChanged();
|
||||
usedNtpWidgetListAdapter.setWidgetList(usedWidgetList);
|
||||
usedNtpWidgetListAdapter.notifyDataSetChanged();
|
||||
|
||||
if (availableWidgetList.size() > 0) {
|
||||
availableWidgetLayout.setVisibility(View.VISIBLE);
|
||||
availableNtpWidgetListAdapter.setWidgetList(availableWidgetList);
|
||||
availableNtpWidgetListAdapter.notifyDataSetChanged();
|
||||
} else {
|
||||
availableWidgetLayout.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
};
|
||||
if (availableWidgetList.size() > 0) {
|
||||
availableWidgetLayout.setVisibility(View.VISIBLE);
|
||||
availableNtpWidgetListAdapter.setWidgetList(availableWidgetList);
|
||||
availableNtpWidgetListAdapter.notifyDataSetChanged();
|
||||
} else {
|
||||
availableWidgetLayout.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.settings;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.content.Intent;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.Preference.OnPreferenceChangeListener;
|
||||
@@ -21,17 +22,19 @@ import org.chromium.chrome.browser.settings.BravePreferenceFragment;
|
||||
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||
import org.chromium.components.browser_ui.settings.SettingsUtils;
|
||||
import org.chromium.components.user_prefs.UserPrefs;
|
||||
import org.chromium.chrome.browser.ntp.widget.NTPWidgetStackActivity;
|
||||
|
||||
/**
|
||||
* Fragment to keep track of all the display related preferences.
|
||||
*/
|
||||
public class BackgroundImagesPreferences extends BravePreferenceFragment
|
||||
implements OnPreferenceChangeListener {
|
||||
implements OnPreferenceChangeListener {
|
||||
|
||||
// deprecated preferences from browser-android-tabs
|
||||
public static final String PREF_SHOW_BACKGROUND_IMAGES = "show_background_images";
|
||||
public static final String PREF_SHOW_SPONSORED_IMAGES = "show_sponsored_images";
|
||||
public static final String PREF_SHOW_NON_DISTRUPTIVE_BANNER = "show_non_distruptive_banner";
|
||||
public static final String PREF_WIDGET_STACK = "widget_stack";
|
||||
|
||||
private ChromeSwitchPreference showBackgroundImagesPref;
|
||||
private ChromeSwitchPreference showSponsoredImagesPref;
|
||||
@@ -47,6 +50,7 @@ public class BackgroundImagesPreferences extends BravePreferenceFragment
|
||||
if (!NTPBackgroundImagesBridge.enableSponsoredImages()) {
|
||||
removePreferenceIfPresent(PREF_SHOW_SPONSORED_IMAGES);
|
||||
}
|
||||
initWidgetStack();
|
||||
}
|
||||
|
||||
private void removePreferenceIfPresent(String key) {
|
||||
@@ -100,4 +104,15 @@ public class BackgroundImagesPreferences extends BravePreferenceFragment
|
||||
sharedPreferencesEditor.putInt(preferenceName, newValue);
|
||||
sharedPreferencesEditor.apply();
|
||||
}
|
||||
|
||||
private void initWidgetStack() {
|
||||
findPreference(PREF_WIDGET_STACK).setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
Intent ntpWidgetStackActivityIntent = new Intent(getActivity(), NTPWidgetStackActivity.class);
|
||||
getActivity().startActivity(ntpWidgetStackActivityIntent);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
+28
-13
@@ -12,20 +12,35 @@
|
||||
android:orientation="vertical"
|
||||
android:background="#F3F3F3">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_gravity="center"
|
||||
android:text="@string/widget_stack"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="@android:color/black"/>
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/back_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@null"
|
||||
android:padding="16dp"
|
||||
app:srcCompat="@drawable/ic_back"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_gravity="center"
|
||||
android:text="@string/widget_stack"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="@android:color/black"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dp"
|
||||
app:cardBackgroundColor="#FFFFFF"
|
||||
app:cardCornerRadius="14dp"
|
||||
@@ -34,7 +49,7 @@
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/used_widget_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
@@ -54,7 +69,7 @@
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dp"
|
||||
app:cardBackgroundColor="#FFFFFF"
|
||||
app:cardCornerRadius="14dp"
|
||||
@@ -63,7 +78,7 @@
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/available_widget_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
@@ -19,4 +19,8 @@
|
||||
android:summaryOn="@string/text_on"
|
||||
android:summaryOff="@string/text_off" />
|
||||
|
||||
<Preference
|
||||
android:key="widget_stack"
|
||||
android:title="@string/widget_stack"/>
|
||||
|
||||
</PreferenceScreen>
|
||||
Reference in New Issue
Block a user