mirror of https://github.com/LeOS-GSI/LeOS-Genesis
parent
a928d311ca
commit
d6c0708814
|
@ -15,6 +15,7 @@
|
|||
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
|
||||
|
||||
<application
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:allowBackup="true"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
|
||||
android:fullBackupContent="false"
|
||||
|
|
|
@ -884,7 +884,6 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
|
||||
try {
|
||||
FinderResult mResult = mFinder.poll(1000);
|
||||
Log.i("FUCK","FUCK : " + mResult.found + "----" + mResult.current + "-----" + mResult.total);
|
||||
event.invokeObserver(Arrays.asList(mResult.total, mResult.current), enums.etype.FINDER_RESULT_CALLBACK);
|
||||
} catch (Throwable throwable) {
|
||||
throwable.printStackTrace();
|
||||
|
|
|
@ -269,14 +269,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mHomeViewController.splashScreenDisableInstant();
|
||||
onLoadTabOnResume();
|
||||
mSearchLock.setColorFilter(ContextCompat.getColor(this, R.color.c_lock_tint));
|
||||
}else {
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
mTabFragment.setAlpha(1f);
|
||||
mTabFragment.setVisibility(View.VISIBLE);
|
||||
activityContextManager.getInstance().getTabController().onInit();
|
||||
mTabFragment.setVisibility(View.GONE);
|
||||
}, 500);
|
||||
}
|
||||
initSuggestionView(new ArrayList<>(), strings.GENERIC_EMPTY_STR);
|
||||
}
|
||||
|
@ -551,7 +543,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
mAppBar.animate().cancel();
|
||||
mHomeViewController.onClearSelections(true);
|
||||
Objects.requireNonNull(mGeckoView.getSession()).stop();
|
||||
mGeckoClient.loadURL(url.replace("genesis.onion","boogle.store"),mGeckoView, homeController.this);
|
||||
}
|
||||
|
@ -957,6 +948,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
pURL = mVal;
|
||||
}
|
||||
|
||||
mHomeViewController.onClearSelections(true);
|
||||
onLoadURL(pURL);
|
||||
mHomeViewController.onUpdateSearchBar(pURL,false,true, false);
|
||||
}
|
||||
|
@ -1562,9 +1554,8 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
else if (menuId == R.id.pMenuOpenRecentTab)
|
||||
{
|
||||
mHomeViewController.onShowTabContainer();
|
||||
Log.i("I AM FUCKED,","I AM FUCKED : 1");
|
||||
activityContextManager.getInstance().getTabController().onInit();
|
||||
mHomeViewController.onShowTabContainer();
|
||||
// overridePendingTransition(R.anim.popup_anim_in, R.anim.popup_anim_out);
|
||||
}
|
||||
else if (menuId == R.id.pMenuOpenNewTab)
|
||||
|
@ -1688,6 +1679,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
{
|
||||
if(e_type.equals(GECKO_SCROLL_CHANGED)){
|
||||
mHomeViewController.onMoveTopBar((int)data.get(0));
|
||||
onInvokePixelGenerator();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -790,9 +790,6 @@ class homeViewController
|
|||
}
|
||||
}
|
||||
|
||||
public void performDummyClick(){
|
||||
}
|
||||
|
||||
void updateBannerAdvertStatus(boolean status, boolean pIsAdvertLoaded){
|
||||
if(status && pIsAdvertLoaded){
|
||||
if(mBannerAds.getAlpha()==0){
|
||||
|
@ -1064,6 +1061,10 @@ class homeViewController
|
|||
mSearchbar.setSelection(mSearchbar.getText().length());
|
||||
mSearchbar.selectAll();
|
||||
}
|
||||
|
||||
if(mSearchbar.getText().toString().equals("loading")){
|
||||
mSearchbar.setText("about:blank");
|
||||
}
|
||||
}
|
||||
|
||||
private String removeEndingSlash(String url){
|
||||
|
@ -1071,9 +1072,11 @@ class homeViewController
|
|||
}
|
||||
|
||||
void onNewTab(){
|
||||
if(!mSearchbar.isFocused()){
|
||||
mSearchbar.requestFocus();
|
||||
mSearchbar.selectAll();
|
||||
}
|
||||
}
|
||||
|
||||
void onUpdateLogs(String log){
|
||||
mLoadingText.setText(log);
|
||||
|
@ -1119,18 +1122,23 @@ class homeViewController
|
|||
public void onNewTabAnimation(List<Object> data, Object e_type){
|
||||
mGeckoView.setPivotX(0);
|
||||
mGeckoView.setPivotY(0);
|
||||
mGeckoView.setClickable(false);
|
||||
mGeckoView.setFocusable(false);
|
||||
mGeckoView.setEnabled(false);
|
||||
//mGeckoView.setClickable(false);
|
||||
//mGeckoView.setFocusable(false);
|
||||
//mGeckoView.setEnabled(false);
|
||||
|
||||
ObjectAnimator scaleDown = ObjectAnimator.ofPropertyValuesHolder(mGeckoView,
|
||||
PropertyValuesHolder.ofFloat("scaleX", 1, 0.35f),
|
||||
PropertyValuesHolder.ofFloat("scaleY", 1, 0.35f));
|
||||
scaleDown.setDuration(300);
|
||||
mNewTabBlocker.setAlpha(0f);
|
||||
PropertyValuesHolder.ofFloat("scaleX", 1, 0.8f),
|
||||
PropertyValuesHolder.ofFloat("scaleY", 1, 0.8f));
|
||||
|
||||
mNewTabBlocker.setVisibility(View.VISIBLE);
|
||||
mNewTabBlocker.animate().setDuration(300).alpha(1);
|
||||
mNewTabBlocker.setTranslationZ(100);
|
||||
ObjectAnimator alpha = ObjectAnimator.ofPropertyValuesHolder(mNewTabBlocker,
|
||||
PropertyValuesHolder.ofFloat("alpha", 0, 1f));
|
||||
|
||||
scaleDown.setDuration(150);
|
||||
alpha.setDuration(150);
|
||||
|
||||
scaleDown.start();
|
||||
alpha.start();
|
||||
|
||||
scaleDown.addListener(new Animator.AnimatorListener() {
|
||||
@Override
|
||||
|
@ -1141,18 +1149,18 @@ class homeViewController
|
|||
public void onAnimationEnd(Animator animation, boolean isReverse) {
|
||||
mEvent.invokeObserver(data, e_type);
|
||||
ObjectAnimator scaleDown = ObjectAnimator.ofPropertyValuesHolder(mGeckoView,
|
||||
PropertyValuesHolder.ofFloat("scaleX", 0.35f, 1f),
|
||||
PropertyValuesHolder.ofFloat("scaleY", 0.35f, 1f));
|
||||
scaleDown.setDuration(300);
|
||||
scaleDown.setStartDelay(650);
|
||||
mNewTabBlocker.animate().setStartDelay(650).setDuration(300).alpha(0).withEndAction(() -> {
|
||||
mNewTabBlocker.setAlpha(0f);
|
||||
PropertyValuesHolder.ofFloat("scaleX", 0.8f, 1f),
|
||||
PropertyValuesHolder.ofFloat("scaleY", 0.8f, 1f));
|
||||
|
||||
scaleDown.setDuration(150);
|
||||
scaleDown.setStartDelay(0);
|
||||
mNewTabBlocker.animate().setStartDelay(350).setDuration(150).alpha(0f).withEndAction(() -> {
|
||||
mNewTabBlocker.setVisibility(View.GONE);
|
||||
});
|
||||
scaleDown.start();
|
||||
mGeckoView.setClickable(true);
|
||||
mGeckoView.setFocusable(true);
|
||||
mGeckoView.setEnabled(true);
|
||||
//mGeckoView.setClickable(true);
|
||||
//mGeckoView.setFocusable(true);
|
||||
//mGeckoView.setEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -350,17 +350,25 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
}
|
||||
|
||||
mItemSelectionMenu.setVisibility(View.GONE);
|
||||
if(model.getSession().getTitle().contains("TITLE") || model.getSession().getTitle().contains("title") || model.getSession().getTitle().toLowerCase().equals("loading")){
|
||||
mHeader.setText(helperMethod.getDomainName(mURL));
|
||||
}else {
|
||||
mHeader.setText(model.getSession().getTitle());
|
||||
}
|
||||
|
||||
if(status.sTabGridLayoutEnabled){
|
||||
mDescription.setText((model.getSession().getTitle()));
|
||||
}else {
|
||||
mHeader.setText(model.getSession().getTitle());
|
||||
mDescription.setText(mURL);
|
||||
}
|
||||
|
||||
String mHeadText = mHeader.getText().toString();
|
||||
String mDescText = mDescription.getText().toString();
|
||||
|
||||
if(mHeadText.equals("$TITLE") || mDescText.startsWith("http://loading") || mDescText.startsWith("loading")){
|
||||
mHeader.setText("about:blank");
|
||||
}
|
||||
|
||||
if(mDescText.equals("$TITLE") || mDescText.startsWith("http://loading") || mDescText.startsWith("loading")){
|
||||
mDescription.setText("about:blank");
|
||||
}
|
||||
|
||||
mDate.setText(model.getDate());
|
||||
|
||||
if(mURL.equals("about:blank")){
|
||||
|
@ -474,6 +482,8 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
}else {
|
||||
if(status.sTabGridLayoutEnabled){
|
||||
scaleView(itemView, mModelList.get(this.getLayoutPosition()));
|
||||
}else {
|
||||
onTriggerURL(mModelList.get(this.getLayoutPosition()));
|
||||
}
|
||||
}
|
||||
}else {
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
package com.darkweb.genesissearchengine.appManager.tabManager;
|
||||
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.animation.PropertyValuesHolder;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Canvas;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
|
@ -47,6 +48,7 @@ public class tabController extends Fragment
|
|||
private ImageView mRemoveSelection;
|
||||
private ImageButton mMenuButton;
|
||||
private ImageButton mClearSelection;
|
||||
private TextView mEmptyView;
|
||||
private View mPopupUndo;
|
||||
private TextView mSelectionCount;
|
||||
private ImageView mBlocker;
|
||||
|
@ -70,6 +72,7 @@ public class tabController extends Fragment
|
|||
private float getmScreenWidth;
|
||||
private boolean mClosed = false;
|
||||
private boolean mClosedByNewTab = false;
|
||||
private boolean mFirstLaunch = true;
|
||||
boolean mScrolled = true;
|
||||
|
||||
/*Initializations*/
|
||||
|
@ -95,6 +98,7 @@ public class tabController extends Fragment
|
|||
mScrollHandler = null;
|
||||
mScrollRunnable = null;
|
||||
mScrolled = false;
|
||||
mFirstLaunch = false;
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
|
@ -109,13 +113,14 @@ public class tabController extends Fragment
|
|||
|
||||
|
||||
public void onInit(){
|
||||
initializeActivity();
|
||||
initializeViews();
|
||||
initializeActivity();
|
||||
initializeLocalEventHandlers();
|
||||
initializeList();
|
||||
initSwipe();
|
||||
|
||||
mClosed = false;
|
||||
mFirstLaunch = false;
|
||||
mTabGridLayoutEnabled = status.sTabGridLayoutEnabled;
|
||||
mtabViewController.onTrigger(tabEnums.eTabViewCommands.ON_RELEASE_BLOCKER, null);
|
||||
mNestedScrollView.scrollTo(0,0);
|
||||
|
@ -125,13 +130,30 @@ public class tabController extends Fragment
|
|||
}
|
||||
|
||||
public void onInitInvoked(){
|
||||
if(mFirstLaunch){
|
||||
mRecycleView.setAlpha(0);
|
||||
mFirstLaunch = false;
|
||||
|
||||
ObjectAnimator alpha = ObjectAnimator.ofPropertyValuesHolder(mRecycleView, PropertyValuesHolder.ofFloat("alpha", 0, 1f));
|
||||
alpha.setDuration(300);
|
||||
alpha.setStartDelay(600);
|
||||
alpha.start();
|
||||
mEmptyView.setAlpha(0);
|
||||
new Handler().postDelayed(() ->
|
||||
{
|
||||
mEmptyView.setAlpha(1);
|
||||
}, 1000);
|
||||
}else {
|
||||
mRecycleView.setAlpha(1);
|
||||
mEmptyView.setAlpha(1);
|
||||
}
|
||||
|
||||
initializeList();
|
||||
|
||||
mClosed = false;
|
||||
mtabViewController.onTrigger(tabEnums.eTabViewCommands.ON_RELEASE_BLOCKER, null);
|
||||
mNestedScrollView.scrollTo(0,0);
|
||||
mtabViewController.onTrigger(tabEnums.eTabViewCommands.ON_HIDE_UNDO_DIALOG_INIT, null);
|
||||
mRecycleView.setAlpha(1);
|
||||
mTabAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
@ -156,6 +178,7 @@ public class tabController extends Fragment
|
|||
public void initializeViews(){
|
||||
mRecycleView = mRootView.findViewById(R.id.pRecycleView);
|
||||
mTabs = mRootView.findViewById(R.id.pTabs);
|
||||
mEmptyView = mRootView.findViewById(R.id.pEmptyView);
|
||||
mRemoveSelection = mRootView.findViewById(R.id.pRemoveSelection);
|
||||
mMenuButton = mRootView.findViewById(R.id.pMenuButton);
|
||||
mClearSelection = mRootView.findViewById(R.id.pClearSelection);
|
||||
|
@ -164,7 +187,7 @@ public class tabController extends Fragment
|
|||
mBlocker = mRootView.findViewById(R.id.pBlocker);
|
||||
mNestedScrollView = mRootView.findViewById(R.id.pNestedScroll);
|
||||
|
||||
mtabViewController = new tabViewController(this, mTabs, mRemoveSelection, mMenuButton, mClearSelection, mPopupUndo, mSelectionCount, mBlocker, mRecycleView, mNestedScrollView);
|
||||
mtabViewController = new tabViewController(this, mTabs, mRemoveSelection, mMenuButton, mClearSelection, mPopupUndo, mSelectionCount, mBlocker, mRecycleView, mNestedScrollView, mEmptyView);
|
||||
}
|
||||
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.graphics.Bitmap;
|
|||
import android.graphics.BitmapFactory;
|
||||
|
||||
import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.geckoSession;
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
|
||||
public class tabRowModel
|
||||
|
@ -44,6 +45,13 @@ public class tabRowModel
|
|||
mSession.setTitle(pTitle);
|
||||
mSession.setURL(pURL);
|
||||
mSession.setTheme(pTheme);
|
||||
|
||||
if(!status.sSettingIsAppStarted){
|
||||
if(pTitle.equals("$TITLE") || pTitle.startsWith("http://loading") || pTitle.startsWith("loading") || pURL.equals("$TITLE") || pURL.startsWith("http://loading") || pURL.startsWith("loading")){
|
||||
mSession.setTitle("about:blank");
|
||||
mSession.setURL("about:blank");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String getmId() {
|
||||
|
|
|
@ -51,6 +51,7 @@ class tabViewController
|
|||
private ImageView mBlocker;
|
||||
private RecyclerView mRecycleView;
|
||||
private NestedScrollView mNestedScrollView;
|
||||
private TextView mEmptyView;
|
||||
|
||||
/*Private Local Variables*/
|
||||
private Handler mDelayHandler = new Handler();
|
||||
|
@ -58,7 +59,7 @@ class tabViewController
|
|||
|
||||
/*Initializations*/
|
||||
|
||||
tabViewController(Fragment mContext, Button pTabs, ImageView pRemoveSelection, ImageButton pMenuButton, ImageButton pClearSelection, View pToastLayoutRoot, TextView pSelectionCount, ImageView pBlocker, RecyclerView pRecycleView, NestedScrollView pNestedScrollView)
|
||||
tabViewController(Fragment mContext, Button pTabs, ImageView pRemoveSelection, ImageButton pMenuButton, ImageButton pClearSelection, View pToastLayoutRoot, TextView pSelectionCount, ImageView pBlocker, RecyclerView pRecycleView, NestedScrollView pNestedScrollView, TextView pEmptyView)
|
||||
{
|
||||
this.mContext = mContext;
|
||||
this.mTabs = pTabs;
|
||||
|
@ -70,6 +71,7 @@ class tabViewController
|
|||
this.mBlocker = pBlocker;
|
||||
this.mRecycleView = pRecycleView;
|
||||
this.mNestedScrollView = pNestedScrollView;
|
||||
this.mEmptyView = pEmptyView;
|
||||
|
||||
initUI();
|
||||
initPostUI();
|
||||
|
|
|
@ -66,6 +66,14 @@ class tabDataModel
|
|||
params[2] = mTabModel.getSession().getTheme();
|
||||
String m_date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.ENGLISH).format(Calendar.getInstance().getTime());
|
||||
|
||||
if(mTabModel.getSession().getTitle().equals("$TITLE") || mTabModel.getSession().getTitle().startsWith("http://loading") || mTabModel.getSession().getTitle().startsWith("loading")){
|
||||
return enums.AddTabCallback.TAB_ADDED;
|
||||
}
|
||||
|
||||
if(mTabModel.getSession().getCurrentURL().equals("$TITLE") || mTabModel.getSession().getCurrentURL().startsWith("http://loading") || mTabModel.getSession().getCurrentURL().startsWith("loading")){
|
||||
return enums.AddTabCallback.TAB_ADDED;
|
||||
}
|
||||
|
||||
databaseController.getInstance().execSQL("REPLACE INTO tab(mid,date,title,url,theme) VALUES('"+ mTabModel.getmId() +"','" + m_date + "',?,?,?);",params);
|
||||
}
|
||||
return enums.AddTabCallback.TAB_ADDED;
|
||||
|
|
|
@ -7,6 +7,8 @@ import android.app.NotificationChannel;
|
|||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.ContentValues;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
|
@ -15,6 +17,8 @@ import android.os.AsyncTask;
|
|||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.os.StrictMode;
|
||||
import android.provider.MediaStore;
|
||||
|
||||
import androidx.core.app.NotificationCompat;
|
||||
import androidx.core.content.FileProvider;
|
||||
|
||||
|
@ -194,8 +198,23 @@ public class localFileDownloader extends AsyncTask<String, Integer, String> {
|
|||
File mFile = new File(mPath);
|
||||
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
Uri uri = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".provider", mFile);
|
||||
|
||||
ContentValues contentValues = new ContentValues();
|
||||
contentValues.put(MediaStore.Downloads.TITLE, mFileName);
|
||||
contentValues.put(MediaStore.Downloads.DISPLAY_NAME, mFileName);
|
||||
contentValues.put(MediaStore.Downloads.SIZE, mDownloadByte);
|
||||
contentValues.put(MediaStore.Downloads.MIME_TYPE, helperMethod.getMimeType(uri.toString()));
|
||||
|
||||
contentValues.put(MediaStore.Downloads.RELATIVE_PATH, Environment.DIRECTORY_DOWNLOADS + File.separator + "Temp");
|
||||
|
||||
ContentResolver database = context.getContentResolver();
|
||||
database.insert(MediaStore.Downloads.EXTERNAL_CONTENT_URI, contentValues);
|
||||
} else {
|
||||
Uri uri = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".provider", mFile);
|
||||
dm.addCompletedDownload(mFileName, mURL, false, helperMethod.getMimeType(uri.toString()), mFile.getAbsolutePath(), mFile.length(), false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@ import com.google.android.material.switchmaterial.SwitchMaterial;
|
|||
|
||||
import org.mozilla.geckoview.ContentBlocking;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
@ -384,12 +385,15 @@ class messageManager
|
|||
((TextView) mDialog.findViewById(R.id.pDescription)).setText(mData.get(0).toString());
|
||||
mDialog.findViewById(R.id.pDismiss).setOnClickListener(v -> mDialog.dismiss());
|
||||
mDialog.findViewById(R.id.pNext).setOnClickListener(v -> {
|
||||
ArrayList<Object> tempData = new ArrayList<>();
|
||||
tempData.addAll(mData);
|
||||
mDialog.dismiss();
|
||||
final Handler handler = new Handler();
|
||||
Runnable runnable = () -> {
|
||||
mEvent.invokeObserver(mData, M_DOWNLOAD_SINGLE);
|
||||
mEvent.invokeObserver(tempData, M_DOWNLOAD_SINGLE);
|
||||
};
|
||||
handler.postDelayed(runnable, 1000);
|
||||
onClearReference();
|
||||
});
|
||||
mDialog.setOnDismissListener(dialog -> onClearReference());
|
||||
}
|
||||
|
|
|
@ -257,24 +257,6 @@
|
|||
app:shiftDuration="@integer/progress_shift_duration"
|
||||
app:wrapShiftDrawable="true"
|
||||
tools:progress="0" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/pNewTabBlocker"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:alpha="0"
|
||||
android:background="@color/c_background"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:focusable="false"
|
||||
android:translationZ="15dp"
|
||||
android:visibility="gone"
|
||||
android:elevation="100dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:ignore="MissingConstraints" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
@ -814,4 +796,21 @@
|
|||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/pNewTabBlocker"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="60dp"
|
||||
android:clickable="true"
|
||||
android:alpha="0"
|
||||
android:background="@color/c_background"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:focusable="true"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:ignore="MissingConstraints" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
Loading…
Reference in New Issue