|
@ -28,6 +28,5 @@
|
|||
<option name="useQualifiedModuleNames" value="true" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
<option name="offlineMode" value="true" />
|
||||
</component>
|
||||
</project>
|
|
@ -189,6 +189,7 @@ dependencies {
|
|||
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:0.30.1'
|
||||
implementation 'com.android.volley:volley:1.1.1'
|
||||
implementation 'com.github.gabrielemariotti.recyclerview:recyclerview-animators:0.3.0-SNAPSHOT@aar'
|
||||
implementation 'com.github.instacart.truetime-android:library-extension-rx:3.3'
|
||||
|
||||
|
||||
/*Image Cache Libraries*/
|
||||
|
|
|
@ -120,6 +120,7 @@
|
|||
android:name="com.darkweb.genesissearchengine.appManager.settingManager.trackingManager.settingTrackingController"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
|
||||
<activity
|
||||
android:name="com.darkweb.genesissearchengine.appManager.homeManager.homeController.homeController"
|
||||
android:configChanges="keyboard|keyboardHidden|mcc|mnc|orientation|screenSize|locale|layoutDirection|smallestScreenSize|screenLayout"
|
||||
|
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 42 KiB |
|
@ -9,6 +9,7 @@ import android.widget.ImageView;
|
|||
import android.widget.PopupWindow;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
import com.example.myapplication.R;
|
||||
import java.util.List;
|
||||
|
@ -54,7 +55,11 @@ public class bookmarkAdapterView
|
|||
pPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
pPopupWindow.setAnimationStyle(R.style.popup_window_animation);
|
||||
pPopupWindow.setElevation(7);
|
||||
pPopupWindow.showAsDropDown(pView,xOffset - 90, -m_offset_height-helperMethod.pxFromDp(50));
|
||||
if(status.sSettingLanguageRegion.equals("Ur")){
|
||||
pPopupWindow.showAsDropDown(pView,0, helperMethod.pxFromDp(-45));
|
||||
}else {
|
||||
pPopupWindow.showAsDropDown(pView,xOffset - 90, -m_offset_height-helperMethod.pxFromDp(50));
|
||||
}
|
||||
return pPopupWindow;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.darkweb.genesissearchengine.appManager.bookmarkManager;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Rect;
|
||||
import android.text.Editable;
|
||||
|
@ -81,6 +82,11 @@ public class bookmarkController extends AppCompatActivity
|
|||
initCustomListeners();
|
||||
initSwipe();
|
||||
}
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
public void initializeListModel(){
|
||||
mbookmarkModel = new bookmarkModel();
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.darkweb.genesissearchengine.appManager.bridgeManager;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
|
@ -8,6 +9,8 @@ import android.widget.Button;
|
|||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.RadioButton;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
|
||||
|
@ -55,6 +58,12 @@ public class bridgeController extends AppCompatActivity {
|
|||
initializeLocalEventHandlers();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
public void initializeAppModel()
|
||||
{
|
||||
activityContextManager.getInstance().onStack(this);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.darkweb.genesissearchengine.appManager.helpManager;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.text.Editable;
|
||||
|
@ -8,6 +9,8 @@ import android.view.MotionEvent;
|
|||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
@ -56,6 +59,12 @@ public class helpController extends AppCompatActivity {
|
|||
initializeLocalEventHandlers();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
private void initializeAppModel()
|
||||
{
|
||||
mHelpModel = new helpModel(this, new helpAdapterCallback());
|
||||
|
|
|
@ -8,6 +8,8 @@ import android.widget.ImageButton;
|
|||
import android.widget.ImageView;
|
||||
import android.widget.PopupWindow;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
import com.example.myapplication.R;
|
||||
import java.util.List;
|
||||
|
@ -53,7 +55,12 @@ public class historyAdapterView
|
|||
pPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
pPopupWindow.setAnimationStyle(R.style.popup_window_animation);
|
||||
pPopupWindow.setElevation(7);
|
||||
pPopupWindow.showAsDropDown(pView,xOffset - 90, -m_offset_height-helperMethod.pxFromDp(50));
|
||||
if(status.sSettingLanguageRegion.equals("Ur")){
|
||||
pPopupWindow.showAsDropDown(pView,0, helperMethod.pxFromDp(-45));
|
||||
}else {
|
||||
pPopupWindow.showAsDropDown(pView,xOffset - 90, -m_offset_height-helperMethod.pxFromDp(50));
|
||||
}
|
||||
|
||||
return pPopupWindow;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.darkweb.genesissearchengine.appManager.historyManager;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Rect;
|
||||
import android.text.Editable;
|
||||
|
@ -81,6 +82,12 @@ public class historyController extends AppCompatActivity
|
|||
initSwipe();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
public void initializeListModel(){
|
||||
mHistoryModel = new historyModel();
|
||||
mContextManager = activityContextManager.getInstance();
|
||||
|
|
|
@ -6,10 +6,8 @@ import androidx.core.view.ViewCompat;
|
|||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.view.MotionEvent;
|
||||
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
import com.darkweb.genesissearchengine.helperManager.eventObserver;
|
||||
|
||||
import org.mozilla.geckoview.GeckoView;
|
||||
|
||||
import java.util.Collections;
|
||||
|
@ -137,9 +135,4 @@ public class NestedGeckoView extends GeckoView {
|
|||
public boolean dispatchNestedFling(float velocityX, float velocityY, boolean consumed) {
|
||||
return mChildHelper.dispatchNestedFling(velocityX, velocityY, consumed);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean dispatchNestedPreFling(float velocityX, float velocityY) {
|
||||
return mChildHelper.dispatchNestedPreFling(velocityX, velocityY);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,850 @@
|
|||
package com.darkweb.genesissearchengine.appManager.homeManager.geckoManager;
|
||||
|
||||
import org.mozilla.gecko.AndroidGamepadManager;
|
||||
import org.mozilla.gecko.EventDispatcher;
|
||||
import org.mozilla.gecko.InputMethods;
|
||||
import org.mozilla.gecko.SurfaceViewWrapper;
|
||||
import org.mozilla.gecko.util.ActivityUtils;
|
||||
import org.mozilla.gecko.util.ThreadUtils;
|
||||
import org.mozilla.geckoview.Autofill;
|
||||
import org.mozilla.geckoview.BasicSelectionActionDelegate;
|
||||
import org.mozilla.geckoview.GeckoDisplay;
|
||||
import org.mozilla.geckoview.GeckoResult;
|
||||
import org.mozilla.geckoview.GeckoRuntime;
|
||||
import org.mozilla.geckoview.GeckoSession;
|
||||
import org.mozilla.geckoview.PanZoomController;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Matrix;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.RectF;
|
||||
import android.graphics.Region;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import androidx.annotation.AnyThread;
|
||||
import androidx.annotation.IntDef;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.UiThread;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.SparseArray;
|
||||
import android.util.TypedValue;
|
||||
import android.view.DisplayCutout;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.Surface;
|
||||
import android.view.SurfaceView;
|
||||
import android.view.TextureView;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewStructure;
|
||||
import android.view.autofill.AutofillManager;
|
||||
import android.view.autofill.AutofillValue;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.view.inputmethod.InputConnection;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
@UiThread
|
||||
public class extendedGeckoView extends FrameLayout {
|
||||
private static final String LOGTAG = "extendedGeckoView";
|
||||
private static final boolean DEBUG = false;
|
||||
|
||||
protected final @NonNull Display mDisplay = new Display();
|
||||
|
||||
private Integer mLastCoverColor;
|
||||
protected @Nullable
|
||||
GeckoSession mSession;
|
||||
private boolean mStateSaved;
|
||||
|
||||
private @Nullable SurfaceViewWrapper mSurfaceWrapper;
|
||||
|
||||
private boolean mIsResettingFocus;
|
||||
|
||||
private boolean mAutofillEnabled = true;
|
||||
|
||||
private GeckoSession.SelectionActionDelegate mSelectionActionDelegate;
|
||||
private Autofill.Delegate mAutofillDelegate;
|
||||
|
||||
private class Display implements SurfaceViewWrapper.Listener {
|
||||
private final int[] mOrigin = new int[2];
|
||||
|
||||
private GeckoDisplay mDisplay;
|
||||
private boolean mValid;
|
||||
|
||||
private int mClippingHeight;
|
||||
private int mDynamicToolbarMaxHeight;
|
||||
|
||||
public void acquire(final GeckoDisplay display) {
|
||||
mDisplay = display;
|
||||
|
||||
if (!mValid) {
|
||||
return;
|
||||
}
|
||||
|
||||
setVerticalClipping(mClippingHeight);
|
||||
|
||||
// Tell display there is already a surface.
|
||||
onGlobalLayout();
|
||||
if (extendedGeckoView.this.mSurfaceWrapper != null) {
|
||||
final SurfaceViewWrapper wrapper = extendedGeckoView.this.mSurfaceWrapper;
|
||||
mDisplay.surfaceChanged(wrapper.getSurface(),
|
||||
wrapper.getWidth(), wrapper.getHeight());
|
||||
mDisplay.setDynamicToolbarMaxHeight(mDynamicToolbarMaxHeight);
|
||||
extendedGeckoView.this.setActive(true);
|
||||
}
|
||||
}
|
||||
|
||||
public GeckoDisplay release() {
|
||||
if (mValid) {
|
||||
if (mDisplay != null) {
|
||||
mDisplay.surfaceDestroyed();
|
||||
}
|
||||
extendedGeckoView.this.setActive(false);
|
||||
}
|
||||
|
||||
final GeckoDisplay display = mDisplay;
|
||||
mDisplay = null;
|
||||
return display;
|
||||
}
|
||||
|
||||
@Override // SurfaceListener
|
||||
public void onSurfaceChanged(final Surface surface,
|
||||
final int width, final int height) {
|
||||
if (mDisplay != null) {
|
||||
mDisplay.surfaceChanged(surface, width, height);
|
||||
mDisplay.setDynamicToolbarMaxHeight(mDynamicToolbarMaxHeight);
|
||||
if (!mValid) {
|
||||
extendedGeckoView.this.setActive(true);
|
||||
}
|
||||
}
|
||||
mValid = true;
|
||||
}
|
||||
|
||||
@Override // SurfaceListener
|
||||
public void onSurfaceDestroyed() {
|
||||
if (mDisplay != null) {
|
||||
mDisplay.surfaceDestroyed();
|
||||
extendedGeckoView.this.setActive(false);
|
||||
}
|
||||
mValid = false;
|
||||
}
|
||||
|
||||
public void onGlobalLayout() {
|
||||
if (mDisplay == null) {
|
||||
return;
|
||||
}
|
||||
if (extendedGeckoView.this.mSurfaceWrapper != null) {
|
||||
extendedGeckoView.this.mSurfaceWrapper.getView().getLocationOnScreen(mOrigin);
|
||||
mDisplay.screenOriginChanged(mOrigin[0], mOrigin[1]);
|
||||
// cutout support
|
||||
if (Build.VERSION.SDK_INT >= 28) {
|
||||
final DisplayCutout cutout = extendedGeckoView.this.mSurfaceWrapper.getView().getRootWindowInsets().getDisplayCutout();
|
||||
if (cutout != null) {
|
||||
mDisplay.safeAreaInsetsChanged(cutout.getSafeInsetTop(), cutout.getSafeInsetRight(), cutout.getSafeInsetBottom(), cutout.getSafeInsetLeft());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean shouldPinOnScreen() {
|
||||
return mDisplay != null ? mDisplay.shouldPinOnScreen() : false;
|
||||
}
|
||||
|
||||
public void setVerticalClipping(final int clippingHeight) {
|
||||
mClippingHeight = clippingHeight;
|
||||
|
||||
if (mDisplay != null) {
|
||||
mDisplay.setVerticalClipping(clippingHeight);
|
||||
}
|
||||
}
|
||||
|
||||
public void setDynamicToolbarMaxHeight(final int height) {
|
||||
mDynamicToolbarMaxHeight = height;
|
||||
|
||||
// Reset the vertical clipping value to zero whenever we change
|
||||
// the dynamic toolbar __max__ height so that it can be properly
|
||||
// propagated to both the main thread and the compositor thread,
|
||||
// thus we will be able to reset the __current__ toolbar height
|
||||
// on the both threads whatever the __current__ toolbar height is.
|
||||
setVerticalClipping(0);
|
||||
|
||||
if (mDisplay != null) {
|
||||
mDisplay.setDynamicToolbarMaxHeight(height);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Request a {@link Bitmap} of the visible portion of the web page currently being
|
||||
* rendered.
|
||||
*
|
||||
* @return A {@link GeckoResult} that completes with a {@link Bitmap} containing
|
||||
* the pixels and size information of the currently visible rendered web page.
|
||||
*/
|
||||
@UiThread
|
||||
@NonNull
|
||||
GeckoResult<Bitmap> capturePixels() {
|
||||
if (mDisplay == null) {
|
||||
return GeckoResult.fromException(new IllegalStateException("Display must be created before pixels can be captured"));
|
||||
}
|
||||
|
||||
return mDisplay.capturePixels();
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("checkstyle:javadocmethod")
|
||||
public extendedGeckoView(final Context context) {
|
||||
super(context);
|
||||
init();
|
||||
}
|
||||
|
||||
@SuppressWarnings("checkstyle:javadocmethod")
|
||||
public extendedGeckoView(final Context context, final AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
init();
|
||||
}
|
||||
|
||||
private void init() {
|
||||
setFocusable(true);
|
||||
setFocusableInTouchMode(true);
|
||||
setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
|
||||
|
||||
// We are adding descendants to this LayerView, but we don't want the
|
||||
// descendants to affect the way LayerView retains its focus.
|
||||
setDescendantFocusability(FOCUS_BLOCK_DESCENDANTS);
|
||||
|
||||
// This will stop PropertyAnimator from creating a drawing cache (i.e. a
|
||||
// bitmap) from a SurfaceView, which is just not possible (the bitmap will be
|
||||
// transparent).
|
||||
setWillNotCacheDrawing(false);
|
||||
|
||||
mSurfaceWrapper = new SurfaceViewWrapper(getContext());
|
||||
mSurfaceWrapper.setBackgroundColor(Color.WHITE);
|
||||
addView(mSurfaceWrapper.getView(),
|
||||
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.MATCH_PARENT));
|
||||
|
||||
mSurfaceWrapper.setListener(mDisplay);
|
||||
|
||||
final Activity activity = ActivityUtils.getActivityFromContext(getContext());
|
||||
if (activity != null) {
|
||||
mSelectionActionDelegate = new BasicSelectionActionDelegate(activity);
|
||||
}
|
||||
|
||||
mAutofillDelegate = new AndroidAutofillDelegate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a color to cover the display surface while a document is being shown. The color
|
||||
* is automatically cleared once the new document starts painting.
|
||||
*
|
||||
* @param color Cover color.
|
||||
*/
|
||||
public void coverUntilFirstPaint(final int color) {
|
||||
mLastCoverColor = color;
|
||||
if (mSession != null) {
|
||||
mSession.getCompositorController().setClearColor(color);
|
||||
}
|
||||
coverUntilFirstPaintInternal(color);
|
||||
}
|
||||
|
||||
private void uncover() {
|
||||
coverUntilFirstPaintInternal(Color.TRANSPARENT);
|
||||
}
|
||||
|
||||
private void coverUntilFirstPaintInternal(final int color) {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
|
||||
if (mSurfaceWrapper != null) {
|
||||
mSurfaceWrapper.setBackgroundColor(color);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This extendedGeckoView instance will be backed by a {@link SurfaceView}.
|
||||
*
|
||||
* This option offers the best performance at the price of not being
|
||||
* able to animate extendedGeckoView.
|
||||
*/
|
||||
public static final int BACKEND_SURFACE_VIEW = 1;
|
||||
/**
|
||||
* This extendedGeckoView instance will be backed by a {@link TextureView}.
|
||||
*
|
||||
* This option offers worse performance compared to {@link #BACKEND_SURFACE_VIEW}
|
||||
* but allows you to animate extendedGeckoView or to paint a extendedGeckoView on top of another extendedGeckoView.
|
||||
*/
|
||||
public static final int BACKEND_TEXTURE_VIEW = 2;
|
||||
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@IntDef({BACKEND_SURFACE_VIEW, BACKEND_TEXTURE_VIEW})
|
||||
/* protected */ @interface ViewBackend {}
|
||||
|
||||
/**
|
||||
* Set which view should be used by this extendedGeckoView instance to display content.
|
||||
*
|
||||
* By default, extendedGeckoView will use a {@link SurfaceView}.
|
||||
*
|
||||
* @param backend Any of {@link #BACKEND_SURFACE_VIEW BACKEND_*}.
|
||||
*/
|
||||
public void setViewBackend(final @ViewBackend int backend) {
|
||||
removeView(mSurfaceWrapper.getView());
|
||||
|
||||
if (backend == BACKEND_SURFACE_VIEW) {
|
||||
mSurfaceWrapper.useSurfaceView(getContext());
|
||||
} else if (backend == BACKEND_TEXTURE_VIEW) {
|
||||
mSurfaceWrapper.useTextureView(getContext());
|
||||
}
|
||||
|
||||
addView(mSurfaceWrapper.getView());
|
||||
}
|
||||
|
||||
/**
|
||||
* Return whether the view should be pinned on the screen. When pinned, the view
|
||||
* should not be moved on the screen due to animation, scrolling, etc. A common reason
|
||||
* for the view being pinned is when the user is dragging a selection caret inside
|
||||
* the view; normal user interaction would be disrupted in that case if the view
|
||||
* was moved on screen.
|
||||
*
|
||||
* @return True if view should be pinned on the screen.
|
||||
*/
|
||||
public boolean shouldPinOnScreen() {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
|
||||
return mDisplay.shouldPinOnScreen();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the amount of vertical space that is clipped or visibly obscured in the bottom portion
|
||||
* of the view. Tells gecko where to put bottom fixed elements so they are fully visible.
|
||||
*
|
||||
* Optional call. The display's visible vertical space has changed. Must be
|
||||
* called on the application main thread.
|
||||
*
|
||||
* @param clippingHeight The height of the bottom clipped space in screen pixels.
|
||||
*/
|
||||
public void setVerticalClipping(final int clippingHeight) {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
|
||||
mDisplay.setVerticalClipping(clippingHeight);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the maximum height of the dynamic toolbar(s).
|
||||
*
|
||||
* If there are two or more dynamic toolbars, the height value should be the total amount of
|
||||
* the height of each dynamic toolbar.
|
||||
*
|
||||
* @param height The the maximum height of the dynamic toolbar(s).
|
||||
*/
|
||||
public void setDynamicToolbarMaxHeight(final int height) {
|
||||
mDisplay.setDynamicToolbarMaxHeight(height);
|
||||
}
|
||||
|
||||
/* package */ void setActive(final boolean active) {
|
||||
if (mSession != null) {
|
||||
mSession.setActive(active);
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Bug 1670805 this should really be configurable
|
||||
// Default dark color for about:blank, keep it in sync with PresShell.cpp
|
||||
final static int DEFAULT_DARK_COLOR = 0xFF2A2A2E;
|
||||
|
||||
|
||||
/**
|
||||
* Unsets the current session from this instance and returns it, if any. You must call
|
||||
* this before {@link #setSession(GeckoSession)} if there is already an open session
|
||||
* set for this instance.
|
||||
*
|
||||
* Note: this method does not close the session and the session remains active. The
|
||||
* caller is responsible for calling {@link GeckoSession#close()} when appropriate.
|
||||
*
|
||||
* @return The {@link GeckoSession} that was set for this instance. May be null.
|
||||
*/
|
||||
@UiThread
|
||||
public @Nullable GeckoSession releaseSession() {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
|
||||
if (mSession == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
GeckoSession session = mSession;
|
||||
mSession.releaseDisplay(mDisplay.release());
|
||||
mSession.getOverscrollEdgeEffect().setInvalidationCallback(null);
|
||||
mSession.getCompositorController().setFirstPaintCallback(null);
|
||||
|
||||
if (mSession.getAccessibility().getView() == this) {
|
||||
mSession.getAccessibility().setView(null);
|
||||
}
|
||||
|
||||
if (mSession.getTextInput().getView() == this) {
|
||||
mSession.getTextInput().setView(null);
|
||||
}
|
||||
|
||||
if (mSession.getSelectionActionDelegate() == mSelectionActionDelegate) {
|
||||
mSession.setSelectionActionDelegate(null);
|
||||
}
|
||||
|
||||
if (mSession.getAutofillDelegate() == mAutofillDelegate) {
|
||||
mSession.setAutofillDelegate(null);
|
||||
}
|
||||
|
||||
if (isFocused()) {
|
||||
mSession.setFocused(false);
|
||||
}
|
||||
mSession = null;
|
||||
return session;
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach a session to this view. If this instance already has an open session, you must use
|
||||
* {@link #releaseSession()} first, otherwise {@link IllegalStateException}
|
||||
* will be thrown. This is to avoid potentially leaking the currently opened session.
|
||||
*
|
||||
* @param session The session to be attached.
|
||||
* @throws IllegalArgumentException if an existing open session is already set.
|
||||
*/
|
||||
@UiThread
|
||||
public void setSession(@NonNull final GeckoSession session) {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
|
||||
if (mSession != null && mSession.isOpen()) {
|
||||
throw new IllegalStateException("Current session is open");
|
||||
}
|
||||
|
||||
releaseSession();
|
||||
|
||||
mSession = session;
|
||||
|
||||
// Make sure the clear color is set to the default
|
||||
|
||||
if (ViewCompat.isAttachedToWindow(this)) {
|
||||
mDisplay.acquire(session.acquireDisplay());
|
||||
}
|
||||
|
||||
final Context context = getContext();
|
||||
session.getOverscrollEdgeEffect().setTheme(context);
|
||||
session.getOverscrollEdgeEffect().setInvalidationCallback(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (Build.VERSION.SDK_INT >= 16) {
|
||||
extendedGeckoView.this.postInvalidateOnAnimation();
|
||||
} else {
|
||||
extendedGeckoView.this.postInvalidateDelayed(10);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
final DisplayMetrics metrics = context.getResources().getDisplayMetrics();
|
||||
final TypedValue outValue = new TypedValue();
|
||||
if (context.getTheme().resolveAttribute(android.R.attr.listPreferredItemHeight,
|
||||
outValue, true)) {
|
||||
session.getPanZoomController().setScrollFactor(outValue.getDimension(metrics));
|
||||
} else {
|
||||
session.getPanZoomController().setScrollFactor(0.075f * metrics.densityDpi);
|
||||
}
|
||||
|
||||
session.getCompositorController().setFirstPaintCallback(this::uncover);
|
||||
|
||||
if (session.getTextInput().getView() == null) {
|
||||
session.getTextInput().setView(this);
|
||||
}
|
||||
|
||||
if (session.getAccessibility().getView() == null) {
|
||||
session.getAccessibility().setView(this);
|
||||
}
|
||||
|
||||
if (session.getSelectionActionDelegate() == null && mSelectionActionDelegate != null) {
|
||||
session.setSelectionActionDelegate(mSelectionActionDelegate);
|
||||
}
|
||||
|
||||
if (mAutofillEnabled) {
|
||||
session.setAutofillDelegate(mAutofillDelegate);
|
||||
}
|
||||
|
||||
if (isFocused()) {
|
||||
session.setFocused(true);
|
||||
}
|
||||
}
|
||||
|
||||
@AnyThread
|
||||
@SuppressWarnings("checkstyle:javadocmethod")
|
||||
public @Nullable GeckoSession getSession() {
|
||||
return mSession;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
|
||||
if (mSession == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Release the display before we detach from the window.
|
||||
mSession.releaseDisplay(mDisplay.release());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public boolean gatherTransparentRegion(final Region region) {
|
||||
// For detecting changes in SurfaceView layout, we take a shortcut here and
|
||||
// override gatherTransparentRegion, instead of registering a layout listener,
|
||||
// which is more expensive.
|
||||
if (mSurfaceWrapper != null) {
|
||||
mDisplay.onGlobalLayout();
|
||||
}
|
||||
return super.gatherTransparentRegion(region);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWindowFocusChanged(final boolean hasWindowFocus) {
|
||||
super.onWindowFocusChanged(hasWindowFocus);
|
||||
|
||||
// Only call setFocus(true) when the window gains focus. Any focus loss could be temporary
|
||||
// (e.g. due to auto-fill popups) and we don't want to call setFocus(false) in those cases.
|
||||
// Instead, we call setFocus(false) in onWindowVisibilityChanged.
|
||||
if (mSession != null && hasWindowFocus && isFocused()) {
|
||||
mSession.setFocused(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onWindowVisibilityChanged(final int visibility) {
|
||||
super.onWindowVisibilityChanged(visibility);
|
||||
|
||||
// We can be reasonably sure that the focus loss is not temporary, so call setFocus(false).
|
||||
if (mSession != null && visibility != View.VISIBLE && !hasWindowFocus()) {
|
||||
mSession.setFocused(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onFocusChanged(final boolean gainFocus, final int direction,
|
||||
final Rect previouslyFocusedRect) {
|
||||
super.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
|
||||
|
||||
if (mIsResettingFocus) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mSession != null) {
|
||||
mSession.setFocused(gainFocus);
|
||||
}
|
||||
|
||||
if (!gainFocus) {
|
||||
return;
|
||||
}
|
||||
|
||||
post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (!isFocused()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final InputMethodManager imm = InputMethods.getInputMethodManager(getContext());
|
||||
// Bug 1404111: Through View#onFocusChanged, the InputMethodManager queues
|
||||
// up a checkFocus call for the next spin of the message loop, so by
|
||||
// posting this Runnable after super#onFocusChanged, the IMM should have
|
||||
// completed its focus change handling at this point and we should be the
|
||||
// active view for input handling.
|
||||
|
||||
// If however onViewDetachedFromWindow for the previously active view gets
|
||||
// called *after* onFocusChanged, but *before* the focus change has been
|
||||
// fully processed by the IMM with the help of checkFocus, the IMM will
|
||||
// lose track of the currently active view, which means that we can't
|
||||
// interact with the IME.
|
||||
if (!imm.isActive(extendedGeckoView.this)) {
|
||||
// If that happens, we bring the IMM's internal state back into sync
|
||||
// by clearing and resetting our focus.
|
||||
mIsResettingFocus = true;
|
||||
clearFocus();
|
||||
// After calling clearFocus we might regain focus automatically, but
|
||||
// we explicitly request it again in case this doesn't happen. If
|
||||
// we've already got the focus back, this will then be a no-op anyway.
|
||||
requestFocus();
|
||||
mIsResettingFocus = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public Handler getHandler() {
|
||||
if (Build.VERSION.SDK_INT >= 24 || mSession == null) {
|
||||
return super.getHandler();
|
||||
}
|
||||
return mSession.getTextInput().getHandler(super.getHandler());
|
||||
}
|
||||
|
||||
@Override
|
||||
public InputConnection onCreateInputConnection(final EditorInfo outAttrs) {
|
||||
if (mSession == null) {
|
||||
return null;
|
||||
}
|
||||
return mSession.getTextInput().onCreateInputConnection(outAttrs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyPreIme(final int keyCode, final KeyEvent event) {
|
||||
if (super.onKeyPreIme(keyCode, event)) {
|
||||
return true;
|
||||
}
|
||||
return mSession != null &&
|
||||
mSession.getTextInput().onKeyPreIme(keyCode, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyUp(final int keyCode, final KeyEvent event) {
|
||||
if (super.onKeyUp(keyCode, event)) {
|
||||
return true;
|
||||
}
|
||||
return mSession != null &&
|
||||
mSession.getTextInput().onKeyUp(keyCode, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyDown(final int keyCode, final KeyEvent event) {
|
||||
if (super.onKeyDown(keyCode, event)) {
|
||||
return true;
|
||||
}
|
||||
return mSession != null &&
|
||||
mSession.getTextInput().onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyLongPress(final int keyCode, final KeyEvent event) {
|
||||
if (super.onKeyLongPress(keyCode, event)) {
|
||||
return true;
|
||||
}
|
||||
return mSession != null &&
|
||||
mSession.getTextInput().onKeyLongPress(keyCode, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyMultiple(final int keyCode, final int repeatCount, final KeyEvent event) {
|
||||
if (super.onKeyMultiple(keyCode, repeatCount, event)) {
|
||||
return true;
|
||||
}
|
||||
return mSession != null &&
|
||||
mSession.getTextInput().onKeyMultiple(keyCode, repeatCount, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispatchDraw(final Canvas canvas) {
|
||||
super.dispatchDraw(canvas);
|
||||
|
||||
if (mSession != null) {
|
||||
mSession.getOverscrollEdgeEffect().draw(canvas);
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
@Override
|
||||
public boolean onTouchEvent(final MotionEvent event) {
|
||||
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
|
||||
requestFocus();
|
||||
}
|
||||
|
||||
if (mSession == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
mSession.getPanZoomController().onTouchEvent(event);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dispatches a {@link MotionEvent} to the {@link PanZoomController}. This is the same as
|
||||
* indicating how the event was handled.
|
||||
*
|
||||
* NOTE: It is highly recommended to only call this with ACTION_DOWN or in otherwise
|
||||
* limited capacity. Returning a GeckoResult for every touch event will generate
|
||||
* a lot of allocations and unnecessary GC pressure.
|
||||
*
|
||||
* @param event A {@link MotionEvent}
|
||||
* @return One of the {@link PanZoomController#INPUT_RESULT_UNHANDLED INPUT_RESULT_*}) indicating how the event was handled.
|
||||
*/
|
||||
public @NonNull GeckoResult<Integer> onTouchEventForResult(final @NonNull MotionEvent event) {
|
||||
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
|
||||
requestFocus();
|
||||
}
|
||||
|
||||
if (mSession == null) {
|
||||
return GeckoResult.fromValue(PanZoomController.INPUT_RESULT_UNHANDLED);
|
||||
}
|
||||
|
||||
// NOTE: Treat mouse events as "touch" rather than as "mouse", so mouse can be
|
||||
// used to pan/zoom. Call onMouseEvent() instead for behavior similar to desktop.
|
||||
return mSession.getPanZoomController().onTouchEventForResult(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onGenericMotionEvent(final MotionEvent event) {
|
||||
if (AndroidGamepadManager.handleMotionEvent(event)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (mSession == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (mSession.getAccessibility().onMotionEvent(event)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
mSession.getPanZoomController().onMotionEvent(event);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProvideAutofillVirtualStructure(final ViewStructure structure,
|
||||
final int flags) {
|
||||
super.onProvideAutofillVirtualStructure(structure, flags);
|
||||
|
||||
if (mSession == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Autofill.Session autofillSession = mSession.getAutofillSession();
|
||||
autofillSession.fillViewStructure(this, structure, flags);
|
||||
}
|
||||
|
||||
@Override
|
||||
@TargetApi(26)
|
||||
public void autofill(@NonNull final SparseArray<AutofillValue> values) {
|
||||
super.autofill(values);
|
||||
|
||||
if (mSession == null) {
|
||||
return;
|
||||
}
|
||||
final SparseArray<CharSequence> strValues = new SparseArray<>(values.size());
|
||||
for (int i = 0; i < values.size(); i++) {
|
||||
final AutofillValue value = values.valueAt(i);
|
||||
if (value.isText()) {
|
||||
// Only text is currently supported.
|
||||
strValues.put(values.keyAt(i), value.getTextValue());
|
||||
}
|
||||
}
|
||||
mSession.autofill(strValues);
|
||||
}
|
||||
|
||||
/**
|
||||
* Request a {@link Bitmap} of the visible portion of the web page currently being
|
||||
* rendered.
|
||||
*
|
||||
* See {@link GeckoDisplay#capturePixels} for more details.
|
||||
*
|
||||
* @return A {@link GeckoResult} that completes with a {@link Bitmap} containing
|
||||
* the pixels and size information of the currently visible rendered web page.
|
||||
*/
|
||||
@UiThread
|
||||
public @NonNull GeckoResult<Bitmap> capturePixels() {
|
||||
return mDisplay.capturePixels();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets whether or not this View participates in Android autofill.
|
||||
*
|
||||
* When enabled, this will set an {@link Autofill.Delegate} on the
|
||||
* {@link GeckoSession} for this instance.
|
||||
*
|
||||
* @param enabled Whether or not Android autofill is enabled for this view.
|
||||
*/
|
||||
@TargetApi(26)
|
||||
public void setAutofillEnabled(final boolean enabled) {
|
||||
mAutofillEnabled = enabled;
|
||||
|
||||
if (mSession != null) {
|
||||
if (!enabled && mSession.getAutofillDelegate() == mAutofillDelegate) {
|
||||
mSession.setAutofillDelegate(null);
|
||||
} else if (enabled) {
|
||||
mSession.setAutofillDelegate(mAutofillDelegate);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Whether or not Android autofill is enabled for this view.
|
||||
*/
|
||||
@TargetApi(26)
|
||||
public boolean getAutofillEnabled() {
|
||||
return mAutofillEnabled;
|
||||
}
|
||||
|
||||
private class AndroidAutofillDelegate implements Autofill.Delegate {
|
||||
|
||||
private Rect displayRectForId(@NonNull final GeckoSession session,
|
||||
@NonNull final Autofill.Node node) {
|
||||
if (node == null) {
|
||||
return new Rect(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
final Matrix matrix = new Matrix();
|
||||
final RectF rectF = new RectF(node.getDimensions());
|
||||
session.getPageToScreenMatrix(matrix);
|
||||
matrix.mapRect(rectF);
|
||||
|
||||
final Rect screenRect = new Rect();
|
||||
rectF.roundOut(screenRect);
|
||||
return screenRect;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutofill(@NonNull final GeckoSession session,
|
||||
final int notification,
|
||||
final Autofill.Node node) {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
if (Build.VERSION.SDK_INT < 26) {
|
||||
return;
|
||||
}
|
||||
|
||||
final AutofillManager manager =
|
||||
extendedGeckoView.this.getContext().getSystemService(AutofillManager.class);
|
||||
if (manager == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (notification) {
|
||||
case Autofill.Notify.SESSION_STARTED:
|
||||
// This line seems necessary for auto-fill to work on the initial page.
|
||||
case Autofill.Notify.SESSION_CANCELED:
|
||||
manager.cancel();
|
||||
break;
|
||||
case Autofill.Notify.SESSION_COMMITTED:
|
||||
manager.commit();
|
||||
break;
|
||||
case Autofill.Notify.NODE_FOCUSED:
|
||||
manager.notifyViewEntered(
|
||||
extendedGeckoView.this, node.getId(),
|
||||
displayRectForId(session, node));
|
||||
break;
|
||||
case Autofill.Notify.NODE_BLURRED:
|
||||
manager.notifyViewExited(extendedGeckoView.this, node.getId());
|
||||
break;
|
||||
case Autofill.Notify.NODE_UPDATED:
|
||||
manager.notifyValueChanged(
|
||||
extendedGeckoView.this,
|
||||
node.getId(),
|
||||
AutofillValue.forText(node.getValue()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package com.darkweb.genesissearchengine.appManager.homeManager.geckoManager;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.widget.ImageView;
|
||||
|
@ -88,6 +89,10 @@ public class geckoClients
|
|||
return mTempSession;
|
||||
}
|
||||
|
||||
public GeckoRuntime getmRuntime(){
|
||||
return mRuntime;
|
||||
}
|
||||
|
||||
public void onSessionReinit(){
|
||||
mSession.onSessionReinit();
|
||||
}
|
||||
|
@ -100,6 +105,7 @@ public class geckoClients
|
|||
return mSession.getUserAgentMode();
|
||||
}
|
||||
|
||||
@SuppressLint("WrongConstant")
|
||||
public void initRuntimeSettings(AppCompatActivity context){
|
||||
if(mRuntime==null){
|
||||
mRuntime = GeckoRuntime.getDefault(context);
|
||||
|
@ -176,7 +182,7 @@ public class geckoClients
|
|||
public void loadURL(String url) {
|
||||
if(mSession.onGetInitializeFromStartup()){
|
||||
mSession.initURL(url);
|
||||
if(url.endsWith("boogle.store") || url.endsWith(constants.CONST_GENESIS_DOMAIN_URL_SLASHED)){
|
||||
if(url.startsWith("https://boogle.store?pG") || url.endsWith("boogle.store") || url.endsWith(constants.CONST_GENESIS_DOMAIN_URL_SLASHED)){
|
||||
try{
|
||||
mSession.initURL(constants.CONST_GENESIS_DOMAIN_URL);
|
||||
mSession.loadUri(constants.CONST_GENESIS_URL_CACHED);
|
||||
|
|
|
@ -37,6 +37,8 @@ import com.darkweb.genesissearchengine.helperManager.JavaScriptInterface;
|
|||
import com.darkweb.genesissearchengine.helperManager.downloadFileService;
|
||||
import com.darkweb.genesissearchengine.helperManager.errorHandler;
|
||||
import com.darkweb.genesissearchengine.helperManager.eventObserver;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
import com.darkweb.genesissearchengine.helperManager.trueTime;
|
||||
import com.example.myapplication.R;
|
||||
import org.json.JSONObject;
|
||||
import org.mozilla.gecko.util.ThreadUtils;
|
||||
|
@ -51,10 +53,13 @@ import java.io.File;
|
|||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
|
||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_LONG_PRESS_URL;
|
||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManager.M_LONG_PRESS_WITH_LINK;
|
||||
import static com.darkweb.genesissearchengine.pluginManager.pluginEnums.eMessageManagerCallbacks.M_RATE_APPLICATION;
|
||||
|
@ -312,8 +317,27 @@ public class geckoSession extends GeckoSession implements GeckoSession.MediaDele
|
|||
}
|
||||
}
|
||||
|
||||
private String setGenesisVerificationToken(String pString){
|
||||
try{
|
||||
Uri built = Uri.parse(pString).buildUpon()
|
||||
.appendQueryParameter(constants.CONST_GENESIS_GMT_TIME_GET_KEY, URLEncoder.encode(helperMethod.caesarCipherEncrypt(trueTime.getInstance().getGMT(),new SecretKeySpec(constants.CONST_ENCRYPTION_KEY.getBytes(), "AES")), "utf-8"))
|
||||
.appendQueryParameter(constants.CONST_GENESIS_LOCAL_TIME_GET_KEY, URLEncoder.encode(helperMethod.caesarCipherEncrypt(trueTime.getInstance().getLTZ(),new SecretKeySpec(constants.CONST_ENCRYPTION_KEY.getBytes(), "AES")), "utf-8"))
|
||||
.build();
|
||||
return built.toString();
|
||||
}catch (Exception ex){
|
||||
return pString;
|
||||
}
|
||||
}
|
||||
|
||||
public GeckoResult<AllowOrDeny> onLoadRequest(@NonNull GeckoSession var2, @NonNull GeckoSession.NavigationDelegate.LoadRequest var1) {
|
||||
if(var1.uri.contains("boogle.store/advert__")){
|
||||
|
||||
if(!var1.uri.equals(constants.CONST_GENESIS_URL_CACHED) && var1.uri.startsWith("https://boogle.store") && !var1.uri.contains(constants.CONST_GENESIS_LOCAL_TIME_GET_KEY) && !var1.uri.contains(constants.CONST_GENESIS_LOCAL_TIME_GET_KEY)){
|
||||
String mVerificationURL = setGenesisVerificationToken(var1.uri);
|
||||
initURL(mVerificationURL);
|
||||
loadUri(mVerificationURL);
|
||||
return GeckoResult.fromValue(AllowOrDeny.DENY);
|
||||
}
|
||||
else if(var1.uri.contains("boogle.store/advert__")){
|
||||
event.invokeObserver(Arrays.asList(var1.uri,mSessionID), enums.etype.on_playstore_load);
|
||||
return GeckoResult.fromValue(AllowOrDeny.DENY);
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import android.content.Intent;
|
|||
import android.content.IntentFilter;
|
||||
import android.content.res.Configuration;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
|
@ -32,6 +33,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.widget.NestedScrollView;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
|
@ -63,11 +65,13 @@ import com.darkweb.genesissearchengine.helperManager.OnClearFromRecentService;
|
|||
import com.darkweb.genesissearchengine.helperManager.SimpleGestureFilter;
|
||||
import com.darkweb.genesissearchengine.helperManager.eventObserver;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
import com.darkweb.genesissearchengine.helperManager.trueTime;
|
||||
import com.darkweb.genesissearchengine.pluginManager.pluginController;
|
||||
import com.darkweb.genesissearchengine.pluginManager.pluginEnums;
|
||||
import com.darkweb.genesissearchengine.widget.progressBar.AnimatedProgressBar;
|
||||
import com.example.myapplication.R;
|
||||
import com.google.android.gms.ads.AdView;
|
||||
import org.mozilla.geckoview.GeckoResult;
|
||||
import org.mozilla.geckoview.GeckoSession;
|
||||
import org.torproject.android.service.OrbotService;
|
||||
import org.torproject.android.service.util.Prefs;
|
||||
|
@ -99,7 +103,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
|
||||
/*View Webviews*/
|
||||
private NestedGeckoView mGeckoView = null;
|
||||
private FrameLayout mTopLayout;
|
||||
private androidx.constraintlayout.widget.ConstraintLayout mTopLayout;
|
||||
private ConstraintLayout mWebViewContainer;
|
||||
|
||||
/*View Objects*/
|
||||
|
@ -121,7 +125,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
private TextView mFindCount;
|
||||
private ImageButton mVoiceInput;
|
||||
private ImageButton mMenu;
|
||||
private FrameLayout mNestedScroll;
|
||||
private NestedScrollView mNestedScroll;
|
||||
private ImageView mBlockerFullSceen;
|
||||
private TextView mCopyright;
|
||||
private RecyclerView mHintListView;
|
||||
|
@ -132,6 +136,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
private com.google.android.material.appbar.AppBarLayout mAppBar;
|
||||
|
||||
/*Redirection Objects*/
|
||||
private GeckoResult<Bitmap> mRenderedBitmap = null;
|
||||
private boolean mPageClosed = false;
|
||||
private boolean isKeyboardOpened = false;
|
||||
private boolean isSuggestionChanged = false;
|
||||
|
@ -157,6 +162,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
status.initStatus();
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
onInitTheme();
|
||||
trueTime.getInstance().initTime();
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.home_view);
|
||||
|
@ -432,9 +438,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
/*-------------------------------------------------------Helper Methods-------------------------------------------------------*/
|
||||
|
||||
public void onGetFavIcon(ImageView pImageView, String pURL){
|
||||
mGeckoClient.onGetFavIcon(pImageView, pURL);
|
||||
}
|
||||
|
||||
public void onGetThumbnail(ImageView pImageView){
|
||||
mRenderedBitmap = mGeckoView.capturePixels();
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_UPDATE_PIXEL, Arrays.asList(mGeckoClient.getSession().getSessionID(), mRenderedBitmap, pImageView, mGeckoView));
|
||||
}
|
||||
|
||||
|
||||
public void onLoadFont(){
|
||||
mGeckoClient.onUpdateFont();
|
||||
mHomeViewController.onReDraw();
|
||||
|
@ -466,6 +477,8 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void onLoadTab(geckoSession mTempSession, boolean isSessionClosed){
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_UPDATE_PIXEL, Arrays.asList(mGeckoClient.getSession().getSessionID(), mRenderedBitmap, null, mGeckoView));
|
||||
|
||||
if(!isSessionClosed){
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.MOVE_TAB_TO_TOP, Collections.singletonList(mTempSession));
|
||||
}
|
||||
|
@ -481,17 +494,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}else {
|
||||
mHomeViewController.progressBarReset();
|
||||
}
|
||||
if(mGeckoClient.getSession().onGetInitializeFromStartup()){
|
||||
mGeckoClient.onRedrawPixel();
|
||||
}
|
||||
|
||||
mGeckoClient.onValidateInitializeFromStartup();
|
||||
mGeckoClient.onRedrawPixel();
|
||||
mGeckoClient.onSessionReinit();
|
||||
mHomeViewController.onUpdateStatusBarTheme(mTempSession.getTheme(), false);
|
||||
mHomeViewController.onUpdateSearchBar(mGeckoClient.getSession().getCurrentURL(), false, false);
|
||||
mHomeViewController.onUpdateStatusBarTheme(mGeckoClient.getSession().getTheme(),true);
|
||||
mAppBar.setExpanded(true,true);
|
||||
mRenderedBitmap = mGeckoView.capturePixels();
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------USER EVENTS-------------------------------------------------------*/
|
||||
|
@ -513,6 +523,42 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
};
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
@Override
|
||||
public void onTrimMemory(int level) {
|
||||
super.onTrimMemory(level);
|
||||
|
||||
switch (level) {
|
||||
case TRIM_MEMORY_BACKGROUND:
|
||||
Log.i("wow : ", "trim memory requested: app in the background");
|
||||
break;
|
||||
|
||||
case TRIM_MEMORY_COMPLETE:
|
||||
Log.i("wow : ", "trim memory requested: cleanup all memory");
|
||||
break;
|
||||
|
||||
case TRIM_MEMORY_MODERATE:
|
||||
Log.i("wow : ", "trim memory requested: clean up some memory");
|
||||
break;
|
||||
|
||||
case TRIM_MEMORY_RUNNING_CRITICAL:
|
||||
Log.i("wow : ", "trim memory requested: memory on device is very low and critical");
|
||||
break;
|
||||
|
||||
case TRIM_MEMORY_RUNNING_LOW:
|
||||
Log.i("wow : ", "trim memory requested: memory on device is running low");
|
||||
break;
|
||||
|
||||
case TRIM_MEMORY_RUNNING_MODERATE:
|
||||
Log.i("wow : ", "trim memory requested: memory on device is moderate");
|
||||
break;
|
||||
|
||||
case TRIM_MEMORY_UI_HIDDEN:
|
||||
Log.i("wow : ", "trim memory requested: app is not showing UI anymore");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
if(!status.sSettingIsAppStarted){
|
||||
|
@ -635,7 +681,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
mSearchBarLoading = true;
|
||||
mEdittextChanged.postDelayed(postToServerRunnable, 0);
|
||||
}else{
|
||||
mEdittextChanged.postDelayed(postToServerRunnable, 100);
|
||||
mEdittextChanged.postDelayed(postToServerRunnable, 300);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -718,13 +764,17 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void onSuggestionInvoked(View view){
|
||||
String val = ((TextView)view.findViewById(R.id.pURL)).getText().toString();
|
||||
if(val.equals(strings.GENERIC_EMPTY_STR)){
|
||||
val = ((TextView)view.findViewById(R.id.pHeaderSingle)).getText().toString();
|
||||
String mVal = ((TextView)view.findViewById(R.id.pURL)).getText().toString();
|
||||
if(mVal.equals(strings.GENERIC_EMPTY_STR)){
|
||||
mVal = ((TextView)view.findViewById(R.id.pHeaderSingle)).getText().toString();
|
||||
}
|
||||
Log.i("FUCLSSS","FUCLSSS3");
|
||||
onLoadURL(val);
|
||||
mHomeViewController.onUpdateSearchBar(val,false,true);
|
||||
String pURL = mHomeModel.urlComplete(mVal, status.sSettingSearchStatus);
|
||||
if(pURL==null){
|
||||
pURL = mVal;
|
||||
}
|
||||
|
||||
onLoadURL(pURL);
|
||||
mHomeViewController.onUpdateSearchBar(pURL,false,true);
|
||||
}
|
||||
|
||||
public void onSuggestionMove(View view){
|
||||
|
@ -763,21 +813,34 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
|
||||
public void postNewLinkTabAnimation(String url){
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_UPDATE_PIXEL, Arrays.asList(mGeckoClient.getSession().getSessionID(), mRenderedBitmap, null, mGeckoView));
|
||||
initializeGeckoView(true, true);
|
||||
mHomeViewController.progressBarReset();
|
||||
mHomeViewController.onUpdateSearchBar(url,false,true);
|
||||
mGeckoClient.loadURL(url);
|
||||
}
|
||||
|
||||
|
||||
public void onNewTab(boolean isKeyboardOpenedTemp, boolean isKeyboardOpened){
|
||||
mHomeViewController.onNewTabAnimation(Arrays.asList(isKeyboardOpenedTemp, isKeyboardOpened),M_INITIALIZE_TAB_SINGLE);
|
||||
try {
|
||||
onGetThumbnail(null);
|
||||
}catch (Exception ignored){}
|
||||
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(() -> {
|
||||
mHomeViewController.onNewTabAnimation(Arrays.asList(isKeyboardOpenedTemp, isKeyboardOpened), M_INITIALIZE_TAB_SINGLE);
|
||||
}, 100);
|
||||
}
|
||||
|
||||
public void onOpenLinkNewTab(String url){
|
||||
mHomeViewController.onNewTabAnimation(Collections.singletonList(url),M_INITIALIZE_TAB_LINK);
|
||||
onGetThumbnail(null);
|
||||
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(() -> mHomeViewController.onNewTabAnimation(Collections.singletonList(url),M_INITIALIZE_TAB_LINK), 100);
|
||||
}
|
||||
|
||||
public void onOpenTabViewBoundary(View view){
|
||||
onGetThumbnail(null);
|
||||
mGeckoClient.onRedrawPixel();
|
||||
mNewTab.setPressed(true);
|
||||
helperMethod.openActivity(tabController.class, constants.CONST_LIST_HISTORY, homeController.this,true);
|
||||
|
@ -849,13 +912,11 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
public void onClearCookies(){
|
||||
mGeckoClient.onClearCookies();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
|
||||
|
||||
pluginController.getInstance().onMessageManagerInvoke(null, M_RESET);
|
||||
mHomeViewController.closeMenu();
|
||||
|
||||
|
@ -877,6 +938,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
if(mSplashScreen.getAlpha()>0){
|
||||
mHomeViewController.initSplashOrientation();
|
||||
}
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -933,9 +995,14 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
if(mGeckoView!=null){
|
||||
tabRowModel model = (tabRowModel)dataController.getInstance().invokeTab(dataEnums.eTabCommands.GET_CURRENT_TAB, null);
|
||||
if(model!=null){
|
||||
mGeckoView.releaseSession();
|
||||
mGeckoView.requestFocus();
|
||||
mGeckoView.setSession(model.getSession());
|
||||
if(!mGeckoView.getSession().isOpen()){
|
||||
onReDrawGeckoview();
|
||||
onLoadURL(model.getSession().getCurrentURL());
|
||||
}else {
|
||||
mGeckoView.releaseSession();
|
||||
mGeckoView.requestFocus();
|
||||
mGeckoView.setSession(model.getSession());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1250,6 +1317,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
else if(e_type.equals(enums.etype.on_url_load)){
|
||||
if(status.sSettingIsAppRedirected){
|
||||
mHomeViewController.onPageFinished();
|
||||
mGeckoClient.onRedrawPixel();
|
||||
|
||||
status.sSettingIsAppRedirected = false;
|
||||
onLoadURL(status.sSettingRedirectStatus);
|
||||
|
@ -1276,6 +1344,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
}
|
||||
else if(status.sSettingIsAppStarted){
|
||||
mHomeViewController.onPageFinished();
|
||||
mGeckoClient.onRedrawPixel();
|
||||
mHomeViewController.onProgressBarUpdate(5);
|
||||
onLoadTabOnResume();
|
||||
}
|
||||
|
@ -1387,14 +1456,12 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
pluginController.getInstance().onOrbotInvoke(data, pluginEnums.eOrbotManager.M_SET_PROXY);
|
||||
}
|
||||
else if(e_type.equals(enums.etype.on_update_history)){
|
||||
if(activityContextManager.getInstance().getTabController()!=null && !activityContextManager.getInstance().getTabController().isDestroyed() && !activityContextManager.getInstance().getTabController().isFinishing()){
|
||||
//dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_UPDATE_PIXEL, Arrays.asList(data.get(1), mGeckoView.capturePixels()));
|
||||
}
|
||||
return dataController.getInstance().invokeHistory(dataEnums.eHistoryCommands.M_ADD_HISTORY ,data);
|
||||
}
|
||||
else if(e_type.equals(enums.etype.on_page_loaded)){
|
||||
dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_SET_BOOL, Arrays.asList(keys.SETTING_IS_BOOTSTRAPPED,true));
|
||||
mHomeViewController.onPageFinished();
|
||||
mGeckoClient.onRedrawPixel();
|
||||
|
||||
final Handler handler = new Handler();
|
||||
Runnable runnable = () -> pluginController.getInstance().onAdsInvoke(null, pluginEnums.eAdManager.M_INITIALIZE_BANNER_ADS);
|
||||
|
@ -1411,6 +1478,7 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(homeController.this), pluginEnums.eLangManager.M_SET_LANGUAGE);
|
||||
initLocalLanguage();
|
||||
mHomeViewController.onPageFinished();
|
||||
mGeckoClient.onRedrawPixel();
|
||||
mHomeViewController.onUpdateSearchBar(dataToStr(data.get(0),mGeckoClient.getSession().getCurrentURL()),false,true);
|
||||
}
|
||||
else if(e_type.equals(enums.etype.search_update)){
|
||||
|
@ -1451,18 +1519,6 @@ public class homeController extends AppCompatActivity implements ComponentCallba
|
|||
if(activityContextManager.getInstance().getTabController()!=null && !activityContextManager.getInstance().getTabController().isDestroyed())
|
||||
activityContextManager.getInstance().getTabController().onTabRowChanged((String) data.get(1));
|
||||
}
|
||||
else if(e_type.equals(dataEnums.eTabCommands.M_UPDATE_PIXEL)){
|
||||
try{
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_UPDATE_PIXEL, Arrays.asList(data.get(1), mGeckoView.capturePixels()));
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(() ->
|
||||
{
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.M_UPDATE_PIXEL, Arrays.asList(data.get(1), mGeckoView.capturePixels()));
|
||||
}, 500);
|
||||
}catch (Exception EX){
|
||||
EX.printStackTrace();
|
||||
}
|
||||
}
|
||||
else if(e_type.equals(enums.etype.FINDER_RESULT_CALLBACK)){
|
||||
mHomeViewController.onUpdateFindBarCount((int)data.get(0),(int)data.get(1));
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.darkweb.genesissearchengine.appManager.homeManager.homeController;
|
|||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.animation.LayoutTransition;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.animation.ValueAnimator;
|
||||
import android.annotation.SuppressLint;
|
||||
|
@ -32,6 +33,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.widget.NestedScrollView;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.darkweb.genesissearchengine.appManager.historyManager.historyRowModel;
|
||||
import com.darkweb.genesissearchengine.constants.*;
|
||||
|
@ -80,7 +82,7 @@ class homeViewController
|
|||
private View mSearchEngineBar;
|
||||
private EditText mFindText;
|
||||
private TextView mFindCount;
|
||||
private FrameLayout mTopLayout;
|
||||
private androidx.constraintlayout.widget.ConstraintLayout mTopLayout;
|
||||
private ImageButton mVoiceInput;
|
||||
private ImageButton mMenu;
|
||||
private ImageView mBlocker;
|
||||
|
@ -89,12 +91,13 @@ class homeViewController
|
|||
private ImageButton mOrbotLogManager;
|
||||
private ConstraintLayout mInfoPortrait;
|
||||
private ConstraintLayout mInfoLandscape;
|
||||
private NestedScrollView mNestedScroll;
|
||||
|
||||
/*Local Variables*/
|
||||
private Callable<String> mLogs = null;
|
||||
private boolean isLandscape = false;
|
||||
|
||||
void initialization(eventObserver.eventListener event, AppCompatActivity context, Button mNewTab, ConstraintLayout webviewContainer, TextView loadingText, AnimatedProgressBar progressBar, editTextManager searchbar, ConstraintLayout splashScreen, ImageView loading, AdView banner_ads, ImageButton gateway_splash, LinearLayout top_bar, GeckoView gecko_view, ImageView backsplash, Button connect_button, View pFindBar, EditText pFindText, TextView pFindCount, FrameLayout pTopLayout, ImageButton pVoiceInput, ImageButton pMenu, FrameLayout pNestedScroll, ImageView pBlocker, ImageView pBlockerFullSceen, View mSearchEngineBar, TextView pCopyright, RecyclerView pHistListView, com.google.android.material.appbar.AppBarLayout pAppBar, ImageButton pOrbotLogManager, ConstraintLayout pInfoLandscape, ConstraintLayout pInfoPortrait){
|
||||
void initialization(eventObserver.eventListener event, AppCompatActivity context, Button mNewTab, ConstraintLayout webviewContainer, TextView loadingText, AnimatedProgressBar progressBar, editTextManager searchbar, ConstraintLayout splashScreen, ImageView loading, AdView banner_ads, ImageButton gateway_splash, LinearLayout top_bar, GeckoView gecko_view, ImageView backsplash, Button connect_button, View pFindBar, EditText pFindText, TextView pFindCount, androidx.constraintlayout.widget.ConstraintLayout pTopLayout, ImageButton pVoiceInput, ImageButton pMenu, androidx.core.widget.NestedScrollView pNestedScroll, ImageView pBlocker, ImageView pBlockerFullSceen, View mSearchEngineBar, TextView pCopyright, RecyclerView pHistListView, com.google.android.material.appbar.AppBarLayout pAppBar, ImageButton pOrbotLogManager, ConstraintLayout pInfoLandscape, ConstraintLayout pInfoPortrait){
|
||||
this.mContext = context;
|
||||
this.mProgressBar = progressBar;
|
||||
this.mSearchbar = searchbar;
|
||||
|
@ -124,6 +127,7 @@ class homeViewController
|
|||
this.mOrbotLogManager = pOrbotLogManager;
|
||||
this.mInfoPortrait = pInfoPortrait;
|
||||
this.mInfoLandscape = pInfoLandscape;
|
||||
this.mNestedScroll = pNestedScroll;
|
||||
|
||||
initSplashScreen();
|
||||
createUpdateUiHandler();
|
||||
|
@ -133,7 +137,9 @@ class homeViewController
|
|||
}
|
||||
|
||||
public void initializeViews(){
|
||||
mNestedScroll.setNestedScrollingEnabled(true);
|
||||
this.mBlockerFullSceen.setVisibility(View.GONE);
|
||||
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(() ->
|
||||
{
|
||||
|
@ -174,7 +180,16 @@ class homeViewController
|
|||
mNewTab.setVisibility(View.VISIBLE);
|
||||
mMenu.setVisibility(View.VISIBLE);
|
||||
|
||||
mSearchbar.setPadding(mSearchbar.getPaddingLeft(),0,helperMethod.pxFromDp(15),0);
|
||||
if(status.sSettingLanguageRegion.equals("Ur")){
|
||||
mSearchbar.setPadding(helperMethod.pxFromDp(17),0,mSearchbar.getPaddingRight(),0);
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mSearchbar.getLayoutParams();
|
||||
params.leftMargin = helperMethod.pxFromDp(5);
|
||||
}else {
|
||||
mSearchbar.setPadding(mSearchbar.getPaddingLeft(),0,helperMethod.pxFromDp(45),0);
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mSearchbar.getLayoutParams();
|
||||
params.rightMargin = helperMethod.pxFromDp(10);
|
||||
}
|
||||
|
||||
});
|
||||
}else {
|
||||
Drawable drawable;
|
||||
|
@ -198,9 +213,17 @@ class homeViewController
|
|||
mNewTab.setVisibility(View.GONE);
|
||||
this.mMenu.setVisibility(View.GONE);
|
||||
|
||||
//mSearchbar.setPadding(mSearchbar.getPaddingLeft(),0,helperMethod.pxFromDp(40),0);
|
||||
mSearchbar.requestFocus();
|
||||
if(status.sSettingLanguageRegion.equals("Ur")){
|
||||
mSearchbar.setPadding(helperMethod.pxFromDp(45),0,mSearchbar.getPaddingRight(),0);
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mSearchbar.getLayoutParams();
|
||||
params.leftMargin = helperMethod.pxFromDp(17);
|
||||
}else {
|
||||
mSearchbar.setPadding(mSearchbar.getPaddingLeft(),0,helperMethod.pxFromDp(45),0);
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mSearchbar.getLayoutParams();
|
||||
params.rightMargin = helperMethod.pxFromDp(17);
|
||||
}
|
||||
|
||||
mSearchbar.requestFocus();
|
||||
InputMethodManager imm = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
imm.showSoftInput(mSearchbar, InputMethodManager.SHOW_IMPLICIT);
|
||||
}
|
||||
|
@ -445,7 +468,11 @@ class homeViewController
|
|||
helperMethod.hideKeyboard(mContext);
|
||||
popupWindow.setHeight(height);
|
||||
}
|
||||
popupWindow.showAtLocation(parent, Gravity.TOP|Gravity.END,0,0);
|
||||
if(status.sSettingLanguageRegion.equals("Ur")){
|
||||
popupWindow.showAtLocation(parent, Gravity.TOP|Gravity.START,0,0);
|
||||
}else {
|
||||
popupWindow.showAtLocation(parent, Gravity.TOP|Gravity.END,0,0);
|
||||
}
|
||||
|
||||
ImageButton back = popupView.findViewById(R.id.menu22);
|
||||
ImageButton close = popupView.findViewById(R.id.menu20);
|
||||
|
@ -520,7 +547,6 @@ class homeViewController
|
|||
if(isAdLoaded){
|
||||
if(status && !isLandscape){
|
||||
mBannerAds.setVisibility(View.VISIBLE);
|
||||
mBannerAds.setAlpha(1f);
|
||||
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(() ->
|
||||
|
@ -841,13 +867,13 @@ class homeViewController
|
|||
mTopBar.setVisibility(View.GONE);
|
||||
mBannerAds.setVisibility(View.GONE);
|
||||
|
||||
ConstraintLayout.MarginLayoutParams params = (ConstraintLayout.MarginLayoutParams) mWebviewContainer.getLayoutParams();
|
||||
params.setMargins(0, helperMethod.pxFromDp(0), 0, 0);
|
||||
mWebviewContainer.setLayoutParams(params);
|
||||
//ConstraintLayout.MarginLayoutParams params = (ConstraintLayout.MarginLayoutParams) mWebviewContainer.getLayoutParams();
|
||||
//params.setMargins(0, helperMethod.pxFromDp(0), 0, 0);
|
||||
//mWebviewContainer.setLayoutParams(params);
|
||||
|
||||
ConstraintLayout.MarginLayoutParams params1 = (ConstraintLayout.MarginLayoutParams) mWebviewContainer.getLayoutParams();
|
||||
params1.setMargins(0, 0, 0,0);
|
||||
mGeckoView.setLayoutParams(params1);
|
||||
//ConstraintLayout.MarginLayoutParams params1 = (ConstraintLayout.MarginLayoutParams) mWebviewContainer.getLayoutParams();
|
||||
//params1.setMargins(0, 0, 0,0);
|
||||
//mGeckoView.setLayoutParams(params1);
|
||||
|
||||
com.darkweb.genesissearchengine.constants.status.sFullScreenBrowsing = false;
|
||||
initTopBarPadding();
|
||||
|
@ -868,13 +894,13 @@ class homeViewController
|
|||
mBannerAds.setVisibility(View.GONE);
|
||||
mEvent.invokeObserver(Collections.singletonList(!isLandscape), enums.etype.on_init_ads);
|
||||
|
||||
ConstraintLayout.MarginLayoutParams params = (ConstraintLayout.MarginLayoutParams) mWebviewContainer.getLayoutParams();
|
||||
params.setMargins(0, 0, 0,0);
|
||||
mWebviewContainer.setLayoutParams(params);
|
||||
//ConstraintLayout.MarginLayoutParams params = (ConstraintLayout.MarginLayoutParams) mWebviewContainer.getLayoutParams();
|
||||
//params.setMargins(0, 0, 0,0);
|
||||
//mWebviewContainer.setLayoutParams(params);
|
||||
|
||||
ConstraintLayout.MarginLayoutParams params1 = (ConstraintLayout.MarginLayoutParams) mWebviewContainer.getLayoutParams();
|
||||
params1.setMargins(0, 0, 0,helperMethod.pxFromDp(0));
|
||||
mGeckoView.setLayoutParams(params1);
|
||||
//ConstraintLayout.MarginLayoutParams params1 = (ConstraintLayout.MarginLayoutParams) mWebviewContainer.getLayoutParams();
|
||||
//params1.setMargins(0, 0, 0,helperMethod.pxFromDp(0));
|
||||
//mGeckoView.setLayoutParams(params1);
|
||||
|
||||
com.darkweb.genesissearchengine.constants.status.sFullScreenBrowsing = (boolean) dataController.getInstance().invokePrefs(dataEnums.ePreferencesCommands.M_GET_BOOL, Arrays.asList(keys.SETTING_FULL_SCREEN_BROWSIING,true));
|
||||
initTopBarPadding();
|
||||
|
|
|
@ -1,14 +1,20 @@
|
|||
package com.darkweb.genesissearchengine.appManager.languageManager;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.recyclerview.widget.SimpleItemAnimator;
|
||||
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
|
||||
import com.darkweb.genesissearchengine.appManager.tabManager.tabController;
|
||||
import com.darkweb.genesissearchengine.constants.constants;
|
||||
import com.darkweb.genesissearchengine.constants.keys;
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
|
@ -56,6 +62,12 @@ public class languageController extends AppCompatActivity {
|
|||
onInitScroll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
private void initializeAppModel()
|
||||
{
|
||||
mLanguageViewController = new languageViewController();
|
||||
|
@ -73,6 +85,15 @@ public class languageController extends AppCompatActivity {
|
|||
|
||||
private void initializeAdapter(){
|
||||
mLanguageAdapter = new languageAdapter((ArrayList<languageDataModel>)mLanguageModel.onTrigger(languageEnums.eLanguageModel.M_SUPPORTED_LANGUAGE,null), this, status.sSettingLanguage, new languageAdapterCallback());
|
||||
((SimpleItemAnimator) Objects.requireNonNull(mRecycleView.getItemAnimator())).setSupportsChangeAnimations(false);
|
||||
|
||||
mRecycleView.setAdapter(mLanguageAdapter);
|
||||
mRecycleView.setItemViewCacheSize(100);
|
||||
mRecycleView.setNestedScrollingEnabled(false);
|
||||
mRecycleView.setHasFixedSize(true);
|
||||
mRecycleView.setItemViewCacheSize(100);
|
||||
mRecycleView.setDrawingCacheEnabled(true);
|
||||
mRecycleView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
|
||||
mRecycleView.setLayoutManager(new LinearLayoutManager(this));
|
||||
|
||||
mRecycleView.setAdapter(mLanguageAdapter);
|
||||
|
@ -137,6 +158,10 @@ public class languageController extends AppCompatActivity {
|
|||
if(mDefaultLanguageNotSupported){
|
||||
pluginController.getInstance().onMessageManagerInvoke(Arrays.asList(Resources.getSystem().getConfiguration().locale.getDisplayName(), this),M_LANGUAGE_SUPPORT_FAILURE);
|
||||
}
|
||||
|
||||
status.mThemeApplying = true;
|
||||
activityContextManager.getInstance().getHomeController().recreate();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.darkweb.genesissearchengine.appManager.orbotLogManager;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.GestureDetector;
|
||||
|
@ -7,6 +8,8 @@ import android.view.MotionEvent;
|
|||
import android.view.View;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.widget.NestedScrollView;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
@ -60,6 +63,12 @@ public class orbotLogController extends AppCompatActivity {
|
|||
onInitListener();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
public void viewsInitializations() {
|
||||
mRecycleView = findViewById(R.id.pLogRecycleView);
|
||||
mLogs = findViewById(R.id.pLogs);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.darkweb.genesissearchengine.appManager.orbotManager;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.os.Debug;
|
||||
import android.util.Log;
|
||||
|
@ -8,6 +9,8 @@ import android.view.GestureDetector;
|
|||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.bridgeManager.bridgeController;
|
||||
|
@ -53,6 +56,12 @@ public class orbotController extends AppCompatActivity {
|
|||
onInitListener();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
public void viewsInitializations() {
|
||||
mBridgeSwitch = findViewById(R.id.pBridgeSwitch);
|
||||
mVpnSwitch = findViewById(R.id.pVpnSwitch);
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
package com.darkweb.genesissearchengine.appManager.proxyStatusManager;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
|
@ -43,6 +45,12 @@ public class proxyStatusController extends AppCompatActivity {
|
|||
viewsInitializations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
public void viewsInitializations() {
|
||||
mOrbotStatus = findViewById(R.id.pOrbotStatus);
|
||||
mVpnStatus = findViewById(R.id.pVpnStatus);
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package com.darkweb.genesissearchengine.appManager.settingManager.accessibilityManager;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.SeekBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
|
||||
|
@ -52,6 +55,12 @@ public class settingAccessibilityController extends AppCompatActivity {
|
|||
initializeListeners();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
private void viewsInitializations() {
|
||||
mZoom = findViewById(R.id.pZoom);
|
||||
mVoiceInput = findViewById(R.id.pVoiceInput);
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
package com.darkweb.genesissearchengine.appManager.settingManager.advanceManager;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.RadioButton;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
|
||||
|
@ -46,6 +49,12 @@ public class settingAdvanceController extends AppCompatActivity {
|
|||
viewsInitializations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
public void viewsInitializations() {
|
||||
mRestoreTabs = findViewById(R.id.pRestoreTabs);
|
||||
mShowWebFonts = findViewById(R.id.pShowWebFonts);
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package com.darkweb.genesissearchengine.appManager.settingManager.clearManager;
|
||||
|
||||
import android.content.res.ColorStateList;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.CheckBox;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
|
@ -47,6 +50,12 @@ public class settingClearController extends AppCompatActivity {
|
|||
viewsInitializations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
public void viewsInitializations() {
|
||||
mCheckBoxList.add(findViewById(R.id.pClearChecked_1));
|
||||
mCheckBoxList.add(findViewById(R.id.pClearChecked_2));
|
||||
|
|
|
@ -5,6 +5,8 @@ import android.os.Bundle;
|
|||
import android.view.View;
|
||||
import android.widget.RadioButton;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
|
@ -53,6 +55,12 @@ public class settingGeneralController extends AppCompatActivity {
|
|||
viewsInitializations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
private void viewsInitializations() {
|
||||
|
||||
mFullScreenMode = findViewById(R.id.pJSStatus);
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
package com.darkweb.genesissearchengine.appManager.settingManager.logManager;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
|
||||
|
@ -38,6 +41,12 @@ public class settingLogController extends AppCompatActivity {
|
|||
viewsInitializations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
private void viewsInitializations() {
|
||||
mListView = findViewById(R.id.pListView);
|
||||
activityContextManager.getInstance().onStack(this);
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
package com.darkweb.genesissearchengine.appManager.settingManager.notificationManager;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
|
||||
|
@ -38,6 +41,12 @@ public class settingNotificationController extends AppCompatActivity {
|
|||
viewsInitializations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
private void viewsInitializations() {
|
||||
activityContextManager.getInstance().onStack(this);
|
||||
mNotificationManual = findViewById(R.id.pNotificationManual);
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
package com.darkweb.genesissearchengine.appManager.settingManager.privacyManager;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.RadioButton;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
|
||||
|
@ -44,6 +47,12 @@ public class settingPrivacyController extends AppCompatActivity {
|
|||
viewsInitializations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
private void viewsInitializations() {
|
||||
mJavaScript = findViewById(R.id.pJavascript);
|
||||
mDoNotTrack = findViewById(R.id.pDoNotTrack);
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
package com.darkweb.genesissearchengine.appManager.settingManager.searchEngineManager;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.RadioButton;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
|
||||
|
@ -40,6 +43,12 @@ public class settingSearchController extends AppCompatActivity {
|
|||
viewsInitializations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
private void viewsInitializations() {
|
||||
mSearchEngines.add(findViewById(R.id.mRadioSearch_1));
|
||||
mSearchEngines.add(findViewById(R.id.mRadioSearch_2));
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package com.darkweb.genesissearchengine.appManager.settingManager.settingHomePage;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
|
||||
|
@ -55,6 +58,12 @@ public class settingHomeController extends AppCompatActivity
|
|||
listenersInitializations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
private void viewsInitializations()
|
||||
{
|
||||
activityContextManager.getInstance().setSettingController(this);
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
package com.darkweb.genesissearchengine.appManager.settingManager.trackingManager;
|
||||
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.RadioButton;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.helpManager.helpController;
|
||||
|
@ -40,6 +43,12 @@ public class settingTrackingController extends AppCompatActivity {
|
|||
viewsInitializations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
pluginController.getInstance().onLanguageInvoke(Collections.singletonList(this), pluginEnums.eLangManager.M_ACTIVITY_CREATED);
|
||||
}
|
||||
|
||||
private void viewsInitializations() {
|
||||
mTrackers.add(findViewById(R.id.pTrackingRadioOption1));
|
||||
mTrackers.add(findViewById(R.id.pTrackingRadioOption2));
|
||||
|
|
|
@ -17,6 +17,7 @@ import androidx.constraintlayout.widget.ConstraintLayout;
|
|||
import androidx.core.content.ContextCompat;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.constants.enums;
|
||||
import com.darkweb.genesissearchengine.helperManager.TopCropImageView;
|
||||
import com.darkweb.genesissearchengine.helperManager.eventObserver;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
|
@ -231,12 +232,11 @@ public class tabAdapter extends RecyclerView.Adapter<tabAdapter.listViewHolder>
|
|||
}
|
||||
mDescription.setText(model.getSession().getCurrentURL());
|
||||
mDate.setText(model.getDate());
|
||||
mWebThumbnail.setImageBitmap(model.getBitmap());
|
||||
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(() ->
|
||||
{
|
||||
mWebThumbnail.setImageBitmap(model.getBitmap());
|
||||
}, 500);
|
||||
if(getLayoutPosition()==0){
|
||||
mEvent.invokeObserver(Arrays.asList(mWebThumbnail, model.getSession().getCurrentURL()), enums.etype.fetch_thumbnail);
|
||||
}
|
||||
|
||||
if(mSelectedList.contains(model.getSession().getSessionID())){
|
||||
onSelectionCreate(mSelectedView);
|
||||
|
|
|
@ -77,7 +77,7 @@ public class tabController extends AppCompatActivity
|
|||
|
||||
public void initializeActivity(){
|
||||
mListModel = new tabModel();
|
||||
mListModel.setList((ArrayList<tabRowModel>)dataController.getInstance().invokeTab(dataEnums.eTabCommands.GET_TAB, null));
|
||||
mListModel.onTrigger(tabEnums.eModelCallback.M_SET_LIST, Collections.singletonList(dataController.getInstance().invokeTab(dataEnums.eTabCommands.GET_TAB, null)));
|
||||
mContextManager = activityContextManager.getInstance();
|
||||
mHomeController = activityContextManager.getInstance().getHomeController();
|
||||
mContextManager.setTabController(this);
|
||||
|
@ -136,7 +136,7 @@ public class tabController extends AppCompatActivity
|
|||
|
||||
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
|
||||
int position = viewHolder.getAdapterPosition();
|
||||
mListModel.onClearBackupWithoutClose();
|
||||
mListModel.onTrigger(tabEnums.eModelCallback.M_CLEAR_BACKUP_WITHOUT_CLOSE,null);
|
||||
boolean mStatus = onInitRemoveView(position, true);
|
||||
if(mStatus){
|
||||
mTabAdapter.onTrigger(tabEnums.eTabAdapterCommands.NOTIFY_SWIPE, Collections.singletonList(position));
|
||||
|
@ -156,7 +156,7 @@ public class tabController extends AppCompatActivity
|
|||
/*View Handlers*/
|
||||
|
||||
public void onRemoveTab(int pIndex){
|
||||
mListModel.onRemoveTab(pIndex);
|
||||
mListModel.onTrigger(tabEnums.eModelCallback.M_REMOVE_TAB,Collections.singletonList(pIndex));
|
||||
if(mListModel.getList().size()<1){
|
||||
mRecycleView.animate().setStartDelay(250).alpha(0);
|
||||
}
|
||||
|
@ -165,7 +165,7 @@ public class tabController extends AppCompatActivity
|
|||
}
|
||||
|
||||
public boolean onInitRemoveView(int pIndex, boolean pCreateBackup){
|
||||
mListModel.onRemoveTab(pIndex);
|
||||
mListModel.onTrigger(tabEnums.eModelCallback.M_REMOVE_TAB,Collections.singletonList(pIndex));
|
||||
mListModel.getList().remove(pIndex);
|
||||
initTabCount();
|
||||
if(mListModel.getList().size()<1){
|
||||
|
@ -185,9 +185,6 @@ public class tabController extends AppCompatActivity
|
|||
|
||||
public void onClose(){
|
||||
onClearTabBackup();
|
||||
if(mListModel.getList().size()<=0){
|
||||
mHomeController.onNewTab(false, false);
|
||||
}
|
||||
finish();
|
||||
}
|
||||
|
||||
|
@ -209,9 +206,9 @@ public class tabController extends AppCompatActivity
|
|||
mRecycleView.animate().setDuration(250).alpha(1);
|
||||
}
|
||||
|
||||
ArrayList<tabRowModel> mBackup = mListModel.onLoadBackup();
|
||||
ArrayList<tabRowModel> mBackup = (ArrayList<tabRowModel>)mListModel.onTrigger(tabEnums.eModelCallback.M_LOAD_BACKUP,null);
|
||||
mTabAdapter.onTrigger(tabEnums.eTabAdapterCommands.REINIT_DATA, Collections.singletonList(mBackup));
|
||||
mListModel.onClearBackupWithoutClose();
|
||||
mListModel.onTrigger(tabEnums.eModelCallback.M_CLEAR_BACKUP_WITHOUT_CLOSE,null);
|
||||
initTabCount();
|
||||
}
|
||||
|
||||
|
@ -220,7 +217,7 @@ public class tabController extends AppCompatActivity
|
|||
}
|
||||
|
||||
public void onClearTabBackup(){
|
||||
ArrayList<tabRowModel> mBackupIndex = mListModel.onGetBackup();
|
||||
ArrayList<tabRowModel> mBackupIndex = (ArrayList<tabRowModel>)mListModel.onTrigger(tabEnums.eModelCallback.M_GET_BACKUP,null);
|
||||
for(int mCounter=0;mCounter<mBackupIndex.size();mCounter++){
|
||||
dataController.getInstance().invokeTab(dataEnums.eTabCommands.CLOSE_TAB, Collections.singletonList(mBackupIndex.get(mCounter).getSession()));
|
||||
mBackupIndex.get(mCounter).getSession().closeSession();
|
||||
|
@ -364,7 +361,7 @@ public class tabController extends AppCompatActivity
|
|||
mHomeController.onLoadTab((geckoSession)data.get(0),(boolean)data.get(1));
|
||||
}
|
||||
else if(e_type.equals(tabEnums.eTabAdapterCallback.ON_REMOVE_TAB_VIEW)){
|
||||
mListModel.onClearBackupWithoutClose();
|
||||
mListModel.onTrigger(tabEnums.eModelCallback.M_CLEAR_BACKUP_WITHOUT_CLOSE,null);
|
||||
onInitRemoveView((Integer) data.get(0), true);
|
||||
}
|
||||
else if(e_type.equals(tabEnums.eTabAdapterCallback.ON_REMOVE_TAB_VIEW_RETAIN_BACKUP)){
|
||||
|
|
|
@ -15,4 +15,8 @@ public class tabEnums
|
|||
ON_HIDE_SELECTION, ON_SHOW_SELECTION, ON_CLEAR_TAB_BACKUP, ON_REMOVE_TAB, ON_INIT_TAB_COUNT, ON_BACK_PRESSED, ON_LOAD_TAB, ON_REMOVE_TAB_VIEW,ON_REMOVE_TAB_VIEW_RETAIN_BACKUP, ON_SHOW_UNDO_DIALOG, ON_SHOW_SELECTION_MENU
|
||||
}
|
||||
|
||||
public enum eModelCallback {
|
||||
M_SET_LIST, M_GET_LIST, M_REMOVE_TAB, M_GET_BACKUP, M_CLEAR_BACKUP_WITHOUT_CLOSE, M_LOAD_BACKUP
|
||||
}
|
||||
|
||||
}
|
|
@ -1,6 +1,12 @@
|
|||
package com.darkweb.genesissearchengine.appManager.tabManager;
|
||||
|
||||
import android.graphics.Canvas;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
class tabModel
|
||||
{
|
||||
|
@ -15,28 +21,51 @@ class tabModel
|
|||
{
|
||||
return mModelList;
|
||||
}
|
||||
void setList(ArrayList<tabRowModel> model)
|
||||
private void setList(ArrayList<tabRowModel> model)
|
||||
{
|
||||
mModelList = model;
|
||||
}
|
||||
|
||||
public void onRemoveTab(int pIndex){
|
||||
private void onRemoveTab(int pIndex){
|
||||
mBackupIndex.add(mModelList.get(pIndex));
|
||||
}
|
||||
|
||||
public ArrayList<tabRowModel> onGetBackup(){
|
||||
private ArrayList<tabRowModel> onGetBackup(){
|
||||
return mBackupIndex;
|
||||
}
|
||||
|
||||
public void onClearBackupWithoutClose(){
|
||||
private void onClearBackupWithoutClose(){
|
||||
mBackupIndex.clear();
|
||||
}
|
||||
|
||||
public ArrayList<tabRowModel> onLoadBackup(){
|
||||
private ArrayList<tabRowModel> onLoadBackup(){
|
||||
for(int mCounter=0;mCounter<mBackupIndex.size();mCounter++){
|
||||
mModelList.add(0,mBackupIndex.get(mCounter));
|
||||
}
|
||||
return mBackupIndex;
|
||||
}
|
||||
|
||||
|
||||
public Object onTrigger(tabEnums.eModelCallback pCommands, List<Object> pData){
|
||||
if(pCommands.equals(tabEnums.eModelCallback.M_SET_LIST)){
|
||||
setList((ArrayList<tabRowModel>)pData.get(0));
|
||||
}
|
||||
if(pCommands.equals(tabEnums.eModelCallback.M_GET_LIST)){
|
||||
return getList();
|
||||
}
|
||||
if(pCommands.equals(tabEnums.eModelCallback.M_REMOVE_TAB)){
|
||||
onRemoveTab((int) pData.get(0));
|
||||
}
|
||||
if(pCommands.equals(tabEnums.eModelCallback.M_GET_BACKUP)){
|
||||
return onGetBackup();
|
||||
}
|
||||
if(pCommands.equals(tabEnums.eModelCallback.M_CLEAR_BACKUP_WITHOUT_CLOSE)){
|
||||
onClearBackupWithoutClose();
|
||||
}
|
||||
if(pCommands.equals(tabEnums.eModelCallback.M_LOAD_BACKUP)){
|
||||
return onLoadBackup();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -10,6 +10,7 @@ import android.graphics.RectF;
|
|||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
|
@ -26,6 +27,8 @@ import androidx.appcompat.app.AppCompatDelegate;
|
|||
import androidx.core.content.ContextCompat;
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
import com.darkweb.genesissearchengine.constants.strings;
|
||||
import com.darkweb.genesissearchengine.dataManager.dataController;
|
||||
import com.darkweb.genesissearchengine.dataManager.dataEnums;
|
||||
|
@ -109,7 +112,11 @@ class tabViewController
|
|||
mTabOptionMenu.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
mTabOptionMenu.setAnimationStyle(R.style.popup_window_animation);
|
||||
mTabOptionMenu.setElevation(7);
|
||||
mTabOptionMenu.showAsDropDown(view,helperMethod.pxFromDp(-125), helperMethod.pxFromDp(-45));
|
||||
if(status.sSettingLanguageRegion.equals("Ur")){
|
||||
mTabOptionMenu.showAsDropDown(view,helperMethod.pxFromDp(-45), helperMethod.pxFromDp(-45));
|
||||
}else {
|
||||
mTabOptionMenu.showAsDropDown(view,helperMethod.pxFromDp(-125), helperMethod.pxFromDp(-45));
|
||||
}
|
||||
}
|
||||
|
||||
private void onCloseTabMenu() {
|
||||
|
@ -143,7 +150,7 @@ class tabViewController
|
|||
mRemoveSelection.setVisibility(View.GONE);
|
||||
mClearSelection.setVisibility(View.GONE);
|
||||
mMenuButton.setVisibility(View.VISIBLE);
|
||||
mTabs.animate().setStartDelay(250).setDuration(200).alpha(1);
|
||||
mTabs.animate().setStartDelay(350).setDuration(200).alpha(1);
|
||||
}
|
||||
|
||||
private void onShowUndoDialog(int pTabCount) {
|
||||
|
|
|
@ -20,6 +20,8 @@ public class constants
|
|||
public static final String CONST_GENESIS_ERROR_CACHED = "resource://android/assets/error/error.html";
|
||||
public static final String CONST_GENESIS_DOMAIN_URL_SLASHED = "https://boogle.store/";
|
||||
public static final String CONST_GENESIS_DOMAIN_URL = "https://boogle.store";
|
||||
public static final String CONST_GENESIS_LOCAL_TIME_GET_KEY = "pLocalTimeVerificationToken";
|
||||
public static final String CONST_GENESIS_GMT_TIME_GET_KEY = "pGlobalTimeVerificationToken";
|
||||
public static final String CONST_GENESIS_HELP_URL_CACHE = "resource://android/assets/help/help.html";
|
||||
public static final String CONST_GENESIS_HELP_URL = "https://boogle.store/help";
|
||||
public static final String CONST_GENESIS_HELP_URL_SUB = "boogle.store/help";
|
||||
|
@ -85,5 +87,8 @@ public class constants
|
|||
public static final String CONST_HELP_MODEL_DESCRIPTION = "mDescription";
|
||||
public static final String CONST_HELP_MODEL_ICON = "mIcon";
|
||||
|
||||
/*ENCRYPTION KEY*/
|
||||
public static final String CONST_ENCRYPTION_KEY = "Zr4u7x!A%D*F-JaNdRgUkXp2s5v8y/B?";
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ public class enums
|
|||
on_update_favicon,ON_UPDATE_TAB_TITLE, ON_LOAD_REQUEST,GECKO_SCROLL_CHANGED,ON_UPDATE_SEARCH_BAR,
|
||||
on_verify_selected_url_menu,FINDER_RESULT_CALLBACK,
|
||||
welcome, reload,download_folder,
|
||||
url_triggered, url_triggered_new_tab,url_clear,fetch_favicon,url_clear_at,remove_from_database,is_empty,M_HOME_PAGE,M_PRELOAD_URL,ON_KEYBOARD_CLOSE,
|
||||
url_triggered, url_triggered_new_tab,url_clear,fetch_favicon, fetch_thumbnail,url_clear_at,remove_from_database,is_empty,M_HOME_PAGE,M_PRELOAD_URL,ON_KEYBOARD_CLOSE,
|
||||
on_close_sesson,on_long_press, on_full_screen,on_handle_external_intent,on_update_suggestion_url,progress_update, ON_EXPAND_TOP_BAR,recheck_orbot,on_url_load,on_playstore_load,back_list_empty,start_proxy, ON_UPDATE_THEME, M_INITIALIZE_TAB_SINGLE, M_INITIALIZE_TAB_LINK,on_request_completed, on_update_history,on_update_suggestion,M_WELCOME_MESSAGE,ON_UPDATE_TITLE_BAR,ON_FIRST_PAINT, ON_LOAD_TAB_ON_RESUME, ON_SESSION_REINIT,on_page_loaded,on_load_error,download_file_popup,on_init_ads,search_update, open_new_tab
|
||||
}
|
||||
|
||||
|
|
|
@ -3,8 +3,11 @@ package com.darkweb.genesissearchengine.dataManager;
|
|||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.appManager.historyManager.historyRowModel;
|
||||
import com.darkweb.genesissearchengine.constants.constants;
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
|
|
@ -24,12 +24,14 @@ public class suggestionDataModel implements SpellCheckerSession.SpellCheckerSess
|
|||
|
||||
private SpellCheckerSession mSpellCheckerSession;
|
||||
private TextServicesManager mTextServicesManager;
|
||||
private ArrayList<historyRowModel> mHintListLocalCache;
|
||||
|
||||
/*Initializations*/
|
||||
|
||||
public suggestionDataModel(Context mContext){
|
||||
mTextServicesManager = (TextServicesManager) mContext.getSystemService(Context.TEXT_SERVICES_MANAGER_SERVICE);
|
||||
mSpellCheckerSession = mTextServicesManager.newSpellCheckerSession(null, null, this, true);
|
||||
mHintListLocalCache = initSuggestions();
|
||||
}
|
||||
|
||||
/*Helper Methods*/
|
||||
|
@ -70,15 +72,14 @@ public class suggestionDataModel implements SpellCheckerSession.SpellCheckerSess
|
|||
}
|
||||
}
|
||||
|
||||
ArrayList<historyRowModel> mDefaultSuggestions = initSuggestions();
|
||||
for(int count = 0; count<= mDefaultSuggestions.size()-1 && mDefaultSuggestions.size()<500; count++){
|
||||
if(mDefaultSuggestions.get(count).getHeader().toLowerCase().contains(pQuery)){
|
||||
mList.add(new historyRowModel(mDefaultSuggestions.get(count).getHeader(),mDefaultSuggestions.get(count).getDescription(),-1));
|
||||
}else if(mDefaultSuggestions.get(count).getDescription().toLowerCase().contains(pQuery)){
|
||||
for(int count = 0; count<= mHintListLocalCache.size()-1 && mHintListLocalCache.size()<500; count++){
|
||||
if(mHintListLocalCache.get(count).getHeader().toLowerCase().contains(pQuery)){
|
||||
mList.add(new historyRowModel(mHintListLocalCache.get(count).getHeader(),mHintListLocalCache.get(count).getDescription(),-1));
|
||||
}else if(mHintListLocalCache.get(count).getDescription().toLowerCase().contains(pQuery)){
|
||||
if(mList.size()==0){
|
||||
mList.add(new historyRowModel(mDefaultSuggestions.get(count).getHeader(),mDefaultSuggestions.get(count).getDescription(),-1));
|
||||
mList.add(new historyRowModel(mHintListLocalCache.get(count).getHeader(),mHintListLocalCache.get(count).getDescription(),-1));
|
||||
}else {
|
||||
mList.add(new historyRowModel(mDefaultSuggestions.get(count).getHeader(),mDefaultSuggestions.get(count).getDescription(),-1));
|
||||
mList.add(new historyRowModel(mHintListLocalCache.get(count).getHeader(),mHintListLocalCache.get(count).getDescription(),-1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,16 +2,32 @@ package com.darkweb.genesissearchengine.dataManager;
|
|||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.ContentValues;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.graphics.Bitmap;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.util.Log;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.darkweb.genesissearchengine.appManager.activityContextManager;
|
||||
import com.darkweb.genesissearchengine.appManager.databaseManager.databaseController;
|
||||
import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.NestedGeckoView;
|
||||
import com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.geckoSession;
|
||||
import com.darkweb.genesissearchengine.appManager.tabManager.tabRowModel;
|
||||
import com.darkweb.genesissearchengine.constants.enums;
|
||||
import com.darkweb.genesissearchengine.constants.messages;
|
||||
import com.darkweb.genesissearchengine.constants.status;
|
||||
import com.darkweb.genesissearchengine.constants.strings;
|
||||
import com.darkweb.genesissearchengine.helperManager.helperMethod;
|
||||
|
||||
import org.mozilla.geckoview.GeckoResult;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
|
@ -141,35 +157,120 @@ class tabDataModel
|
|||
}
|
||||
}
|
||||
|
||||
public void updatePixels(String pSessionID, GeckoResult<Bitmap> pBitmapManager){
|
||||
@SuppressLint("HandlerLeak")
|
||||
static Handler handler = new Handler()
|
||||
{
|
||||
@Override
|
||||
public void dispatchMessage(@NonNull Message msg) {
|
||||
super.dispatchMessage(msg);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public String getMessageName(@NonNull Message message) {
|
||||
return super.getMessageName(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean sendMessageAtTime(@NonNull Message msg, long uptimeMillis) {
|
||||
return super.sendMessageAtTime(msg, uptimeMillis);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMessage(Message msg)
|
||||
{
|
||||
Log.i("FUCK","FUCK");
|
||||
}
|
||||
};
|
||||
|
||||
// int isLoading = 0;
|
||||
public void updatePixels(String pSessionID, GeckoResult<Bitmap> pBitmapManager, ImageView pImageView, NestedGeckoView pGeckoView){
|
||||
|
||||
new Thread(){
|
||||
public void run(){
|
||||
try {
|
||||
for(int counter = 0; counter< mTabs.size(); counter++) {
|
||||
int finalCounter = counter;
|
||||
if (mTabs.get(counter).getSession().getSessionID().equals(pSessionID)) {
|
||||
GeckoResult<Bitmap> mResult = pBitmapManager.withHandler(handler);
|
||||
Bitmap mBitmap = pBitmapManager.poll(4000);
|
||||
|
||||
mTabs.get(finalCounter).setmBitmap(mBitmap);
|
||||
if(pImageView!=null){
|
||||
activityContextManager.getInstance().getHomeController().runOnUiThread(() -> pImageView.setImageBitmap(mBitmap));
|
||||
}
|
||||
|
||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
byte[] mThumbnail = bos.toByteArray();
|
||||
|
||||
ContentValues mContentValues = new ContentValues();
|
||||
mContentValues.put("mThumbnail", mThumbnail);
|
||||
databaseController.getInstance().execTab("tab",mContentValues, mTabs.get(finalCounter).getmId());
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Throwable throwable) {
|
||||
throwable.printStackTrace();
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
|
||||
|
||||
|
||||
/*int e=0;
|
||||
e=1;
|
||||
for(int counter = 0; counter< mTabs.size(); counter++){
|
||||
if(mTabs.get(counter).getSession().getSessionID().equals(pSessionID))
|
||||
{
|
||||
final Handler handler = new Handler();
|
||||
int finalCounter = counter;
|
||||
int finalCounter1 = counter;
|
||||
handler.postDelayed(() ->
|
||||
{
|
||||
try {
|
||||
Bitmap mBitmap = pBitmapManager.poll(500);
|
||||
mTabs.get(finalCounter).setmBitmap(mBitmap);
|
||||
new Thread(){
|
||||
public void run(){
|
||||
try {
|
||||
int mCounter=0;
|
||||
|
||||
while (mCounter<=20){
|
||||
|
||||
|
||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
mBitmap.compress(Bitmap.CompressFormat.PNG, 100, bos);
|
||||
byte[] mThumbnail = bos.toByteArray();
|
||||
activityContextManager.getInstance().getHomeController().runOnUiThread(() -> {
|
||||
Bitmap mBitmap = null;
|
||||
try {
|
||||
mBitmap = pBitmapManager.poll(0);
|
||||
} catch (Throwable throwable) {
|
||||
throwable.printStackTrace();
|
||||
isLoading = 2;
|
||||
return;
|
||||
}
|
||||
mTabs.get(finalCounter).setmBitmap(mBitmap);
|
||||
if(pImageView!=null){
|
||||
pImageView.setImageBitmap(mBitmap);
|
||||
}
|
||||
|
||||
ContentValues mContentValues = new ContentValues();
|
||||
mContentValues.put("mThumbnail", mThumbnail);
|
||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
mBitmap.compress(Bitmap.CompressFormat.PNG, 100, bos);
|
||||
byte[] mThumbnail = bos.toByteArray();
|
||||
|
||||
databaseController.getInstance().execTab("tab",mContentValues, mTabs.get(finalCounter1).getmId());
|
||||
ContentValues mContentValues = new ContentValues();
|
||||
mContentValues.put("mThumbnail", mThumbnail);
|
||||
|
||||
} catch (Throwable throwable) {
|
||||
throwable.printStackTrace();
|
||||
databaseController.getInstance().execTab("tab",mContentValues, mTabs.get(finalCounter1).getmId());
|
||||
isLoading = 3;
|
||||
});
|
||||
mCounter++;
|
||||
}
|
||||
} catch (Throwable throwable) {
|
||||
throwable.printStackTrace();
|
||||
}
|
||||
}
|
||||
}, 500);
|
||||
}.start();
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
public ArrayList<ArrayList<String>> getSuggestions(String pQuery){
|
||||
|
@ -222,7 +323,7 @@ class tabDataModel
|
|||
return getSuggestions((String) pData.get(0));
|
||||
}
|
||||
else if(pCommands == dataEnums.eTabCommands.M_UPDATE_PIXEL){
|
||||
updatePixels((String)pData.get(0), (GeckoResult<Bitmap>)pData.get(1));
|
||||
updatePixels((String)pData.get(0), (GeckoResult<Bitmap>)pData.get(1), (ImageView) pData.get(2), (NestedGeckoView) pData.get(3));
|
||||
}
|
||||
else if(pCommands == dataEnums.eTabCommands.M_HOME_PAGE){
|
||||
return getHomePage();
|
||||
|
|
|
@ -9,7 +9,7 @@ import com.example.myapplication.R;
|
|||
/**
|
||||
* Created by BrainWang on 05/01/2016.
|
||||
*/
|
||||
public class AdBlocker {
|
||||
public class adBlocker {
|
||||
static String[] adUrls = null;
|
||||
public static boolean isAd(Context context, String url) {
|
||||
Resources res = context.getResources();
|
|
@ -46,13 +46,16 @@ import java.net.MalformedURLException;
|
|||
import java.net.URI;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.security.Key;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Base64;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
import static android.content.Context.LAYOUT_INFLATER_SERVICE;
|
||||
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
||||
|
@ -74,6 +77,17 @@ public class helperMethod
|
|||
}
|
||||
}
|
||||
|
||||
public static String caesarCipherEncrypt(String pMessage, Key pSecretKey) {
|
||||
try{
|
||||
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
|
||||
cipher.init(Cipher.ENCRYPT_MODE, pSecretKey);
|
||||
byte[] cipherText = cipher.doFinal((pMessage + "__" + createRandomID()).getBytes());
|
||||
return new String(cipherText);
|
||||
}catch (Exception ex){
|
||||
return pMessage;
|
||||
}
|
||||
}
|
||||
|
||||
public static void onOpenHelpExternal(AppCompatActivity context, String pURL){
|
||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(pURL));
|
||||
context.startActivity(browserIntent);
|
||||
|
@ -560,7 +574,13 @@ public class helperMethod
|
|||
popupWindow.setFocusable(true);
|
||||
popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
popupWindow.setAnimationStyle(R.style.popup_window_animation);
|
||||
popupWindow.showAtLocation(p_view, Gravity.TOP|Gravity.END,0,0);
|
||||
|
||||
if(status.sSettingLanguageRegion.equals("Ur")){
|
||||
popupWindow.showAtLocation(p_view, Gravity.TOP|Gravity.START,0,0);
|
||||
}else {
|
||||
popupWindow.showAtLocation(p_view, Gravity.TOP|Gravity.END,0,0);
|
||||
}
|
||||
|
||||
popupWindow.setElevation(7);
|
||||
|
||||
return popupWindow;
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
package com.darkweb.genesissearchengine.helperManager;
|
||||
|
||||
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.darkweb.genesissearchengine.constants.strings;
|
||||
import com.instacart.library.truetime.TrueTime;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
import java.util.TimeZone;
|
||||
|
||||
public class trueTime {
|
||||
|
||||
private static trueTime ourInstance = new trueTime();
|
||||
public static trueTime getInstance()
|
||||
{
|
||||
return ourInstance;
|
||||
}
|
||||
|
||||
public void initTime(){
|
||||
try{
|
||||
TrueTime.build().initialize();
|
||||
}catch (Exception ignored){ }
|
||||
}
|
||||
|
||||
|
||||
public String getGMT(){
|
||||
if (TrueTime.isInitialized()) {
|
||||
Date trueTime = TrueTime.now();
|
||||
return trueTime.getTime()+strings.GENERIC_EMPTY_STR;
|
||||
}else {
|
||||
return "null";
|
||||
}
|
||||
}
|
||||
|
||||
public String getLTZ(){
|
||||
Date deviceTime = new Date();
|
||||
|
||||
return System.currentTimeMillis()+strings.GENERIC_EMPTY_STR;
|
||||
}
|
||||
|
||||
private String _formatDate(Date date, String pattern, TimeZone timeZone) {
|
||||
DateFormat format = new SimpleDateFormat(pattern, Locale.ENGLISH);
|
||||
format.setTimeZone(timeZone);
|
||||
return format.format(date);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
package com.darkweb.genesissearchengine.pluginManager;
|
||||
|
||||
import android.view.View;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.darkweb.genesissearchengine.helperManager.eventObserver;
|
||||
import com.google.android.gms.ads.*;
|
||||
|
@ -62,7 +64,10 @@ class adManager
|
|||
@Override
|
||||
public void onAdLoaded() {
|
||||
bannerAdsLoaded = true;
|
||||
mEvent.invokeObserver(null,M_SHOW_LOADED_ADS);
|
||||
mBannerAds.animate().cancel();
|
||||
mBannerAds.animate().alpha(0);
|
||||
mBannerAds.setVisibility(View.VISIBLE);
|
||||
mBannerAds.animate().setStartDelay(100).setDuration(500).alpha(1).withEndAction(() -> mEvent.invokeObserver(null,M_SHOW_LOADED_ADS));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:autoMirrored="true"
|
||||
android:color="@color/c_ripple">
|
||||
<item android:id="@android:id/mask">
|
||||
<shape android:shape="rectangle">
|
||||
|
|
|
@ -5,6 +5,6 @@
|
|||
<item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/splashlogoclip"/>
|
||||
android:src="@drawable/splashlogoclip"/>
|
||||
</item>
|
||||
</layer-list>
|
|
@ -2,6 +2,7 @@
|
|||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:autoMirrored="true"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:autoMirrored="true"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,4l-1.41,1.41L16.17,11H4v2h12.17l-5.58,5.59L12,20l8,-8z"/>
|
||||
</vector>
|
|
@ -0,0 +1,6 @@
|
|||
<vector android:autoMirrored="true" android:height="267dp"
|
||||
android:viewportHeight="2670" android:viewportWidth="4330"
|
||||
android:width="433dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#7dccfc"
|
||||
android:pathData="M1285,2574c-27,-7 -80,-14 -117,-14 -37,0 -70,-4 -73,-10 -3,-5 -18,-10 -33,-10 -28,0 -98,-22 -187,-60 -16,-7 -39,-16 -50,-20 -48,-17 -141,-67 -163,-87 -7,-7 -17,-13 -22,-13 -5,0 -15,-6 -22,-12 -7,-7 -31,-26 -53,-43 -53,-39 -153,-139 -196,-195 -18,-25 -40,-51 -47,-59 -7,-7 -21,-31 -30,-52 -9,-22 -20,-39 -24,-39 -5,0 -8,-7 -8,-15 0,-8 -4,-15 -10,-15 -5,0 -10,-9 -10,-20 0,-11 -4,-20 -10,-20 -5,0 -10,-7 -10,-15 0,-8 -4,-23 -9,-33 -8,-15 -20,-42 -51,-117 -7,-19 -21,-69 -35,-125 -35,-147 -40,-342 -11,-480 9,-41 17,-84 19,-95 2,-11 7,-29 12,-40 15,-41 36,-91 45,-107 6,-10 10,-27 10,-38 0,-11 5,-20 10,-20 6,0 10,-11 10,-25 0,-14 5,-25 10,-25 6,0 10,-7 10,-15 0,-9 9,-25 20,-37 11,-12 20,-28 20,-35 0,-7 5,-13 10,-13 6,0 10,-7 10,-15 0,-8 15,-30 33,-50 17,-19 32,-39 32,-44 0,-10 180,-191 190,-191 3,0 11,-5 18,-10 47,-39 62,-50 78,-55 11,-4 19,-11 19,-16 0,-5 6,-9 13,-9 7,0 23,-9 35,-20 12,-11 28,-20 37,-20 8,0 15,-4 15,-10 0,-5 9,-10 20,-10 11,0 20,-4 20,-10 0,-5 11,-10 25,-10 14,0 25,-4 25,-10 0,-5 11,-10 24,-10 13,0 26,-4 28,-9 2,-6 14,-12 28,-14 14,-2 32,-7 40,-10 53,-20 129,-36 270,-55 25,-3 728,-7 1563,-9l1517,-3 0,1255 0,1255 -1497,-1c-1247,-1 -1506,-3 -1548,-15zM1409,2078c27,-10 81,-67 81,-85 0,-7 5,-13 10,-13 6,0 10,-123 10,-349l0,-348 -26,-38c-47,-70 -75,-85 -154,-85 -62,0 -88,9 -126,46 -53,51 -54,57 -54,426 0,372 -2,356 55,414 51,51 125,63 204,32zM1395,1020c3,-5 15,-10 26,-10 10,0 19,-3 19,-7 0,-5 16,-25 35,-45 19,-20 35,-44 35,-52 0,-9 5,-16 10,-16 15,0 12,-93 -3,-123 -20,-39 -85,-107 -102,-107 -8,0 -15,-4 -15,-10 0,-6 -30,-10 -70,-10 -40,0 -70,4 -70,10 0,6 -7,10 -16,10 -19,0 -79,62 -100,104 -16,33 -19,126 -4,126 6,0 10,7 10,15 0,9 5,22 11,29 41,49 68,73 94,83 38,14 132,16 140,3z" android:strokeColor="#00000000"/>
|
||||
</vector>
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 241 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 101 KiB |
|
@ -44,6 +44,8 @@
|
|||
android:paddingStart="15dp"
|
||||
android:lines="2"
|
||||
android:paddingEnd="15dp"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:layout_marginEnd="30dp"
|
||||
android:textColor="@color/c_alert_text"
|
||||
android:textSize="13sp"
|
||||
|
|
|
@ -44,11 +44,12 @@
|
|||
android:alpha="0.6"
|
||||
android:lines="2"
|
||||
android:paddingEnd="15dp"
|
||||
android:textAlignment="textStart"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:textSize="13sp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:singleLine="true"
|
||||
android:layout_marginRight="20dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pHeader"
|
||||
tools:ignore="SmallSp" />
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:background="@color/c_view_divier_background_inner_v1"
|
||||
app:layout_constraintBottom_toTopOf="@+id/pNavigationContainer" />
|
||||
|
||||
|
|
|
@ -40,6 +40,8 @@
|
|||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:text="Deuche (de)"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pHeader" />
|
||||
|
@ -48,12 +50,13 @@
|
|||
android:id="@+id/pDescription"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:layout_marginTop="35dp"
|
||||
android:alpha="0.6"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="@string/ALERT_LANGUAGE_SUPPORT_FAILURE_INFO"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="@color/c_alert_text"
|
||||
android:textSize="13sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
|
@ -43,8 +43,9 @@
|
|||
android:lines="2"
|
||||
android:paddingEnd="15dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:singleLine="true"
|
||||
android:textAlignment="textStart"
|
||||
android:textSize="13sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
|
|
@ -31,14 +31,14 @@
|
|||
android:id="@+id/pHeader"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="17dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:paddingStart="5dp"
|
||||
android:text="@string/ALERT_SECURE"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="@color/green_button"
|
||||
android:textSize="15sp"
|
||||
android:textStyle="bold"
|
||||
app:layout_constraintStart_toEndOf="@+id/pLock"
|
||||
app:layout_constraintStart_toEndOf="@+id/pHeaderSubpart"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
|
||||
|
@ -46,14 +46,14 @@
|
|||
android:id="@+id/pHeaderSubpart"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_marginTop="17dp"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:alpha="0.8"
|
||||
android:text="www.bbc.com"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="@color/c_alert_text"
|
||||
android:textSize="14sp"
|
||||
app:layout_constraintStart_toEndOf="@+id/pHeader"
|
||||
app:layout_constraintStart_toEndOf="@+id/pLock"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<LinearLayout
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
android:onClick="onOpenInfo"
|
||||
android:background="@xml/gx_ripple_gray_round_left"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:src="@drawable/info"
|
||||
android:src="@xml/ic_info"
|
||||
app:tint="@color/c_icon_tint_light" />
|
||||
|
||||
</LinearLayout>
|
||||
|
@ -92,7 +92,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_weight="40"
|
||||
android:background="@color/clear_alpha"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:text="@string/BRIDGE_DESC"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
@ -111,7 +111,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_weight="40"
|
||||
android:textColor="@color/c_text_setting_heading"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/BRIDGE_AUTO"
|
||||
/>
|
||||
|
@ -121,9 +121,8 @@
|
|||
android:layout_width="match_parent"
|
||||
android:textColor="@color/c_text_v2"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="40"
|
||||
android:background="@color/clear_alpha"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:text="@string/BRIDGE_AUTO_INFO"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
@ -145,21 +144,16 @@
|
|||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:paddingStart="4dp"
|
||||
android:id="@+id/pTopPanel"
|
||||
android:layout_marginTop="0dp"
|
||||
android:orientation="vertical"
|
||||
android:layout_height="wrap_content"
|
||||
tools:ignore="RtlSymmetry">
|
||||
android:layout_height="wrap_content">
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:background="@xml/sx_border_left"
|
||||
android:layout_marginStart="15dp"
|
||||
android:paddingStart="4dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:orientation="vertical"
|
||||
android:layout_height="wrap_content"
|
||||
tools:ignore="RtlSymmetry">
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
|
@ -182,7 +176,7 @@
|
|||
tools:ignore="RtlSymmetry">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_weight="7"
|
||||
android:layout_height="55dp"
|
||||
android:orientation="vertical">
|
||||
|
@ -370,10 +364,10 @@
|
|||
android:onClick="onOpenCustomBridgeUpdater"
|
||||
android:layout_height="45dp"
|
||||
android:focusable="false"
|
||||
android:paddingLeft="15dp"
|
||||
android:paddingStart="15dp"
|
||||
android:cursorVisible="false"
|
||||
android:singleLine="true"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:ems="10"
|
||||
android:maxLines="1"
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
</resources>
|
|
@ -4,8 +4,8 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingRight="0dp"
|
||||
android:paddingLeft="0dp"
|
||||
android:paddingEnd="0dp"
|
||||
android:paddingStart="0dp"
|
||||
android:paddingBottom="0dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
|
@ -60,8 +60,8 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:clickable="false"
|
||||
android:ellipsize="end"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:singleLine="true"
|
||||
android:text="@string/GENERAL_DEFAULT_HINT_SUGGESTION"
|
||||
android:textColor="@color/c_text_v1"
|
||||
|
@ -76,8 +76,8 @@
|
|||
android:layout_marginTop="6dp"
|
||||
android:clickable="false"
|
||||
android:ellipsize="end"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:singleLine="true"
|
||||
android:text="@string/GENERAL_DEFAULT_HINT_SUGGESTION"
|
||||
android:textColor="@color/c_text_v1"
|
||||
|
@ -93,8 +93,8 @@
|
|||
android:layout_marginTop="20dp"
|
||||
android:clickable="false"
|
||||
android:ellipsize="end"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:singleLine="true"
|
||||
android:text="@string/GENERAL_DEFAULT_HINT_SUGGESTION"
|
||||
android:textColor="@color/c_text_v6"
|
||||
|
@ -110,7 +110,7 @@
|
|||
android:padding="8dp"
|
||||
android:layout_height="55dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:src="@xml/ic_arrow_right"
|
||||
android:src="@xml/ic_arrow_right_tilted"
|
||||
android:tag="@string/GENERAL_TODO"
|
||||
android:onClick="onSuggestionMove"
|
||||
android:layout_margin="2dp"
|
||||
|
|
|
@ -23,17 +23,16 @@
|
|||
android:id="@+id/pAppbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/c_background_keyboard"
|
||||
android:background="@color/c_background"
|
||||
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
|
||||
android:translationZ="3dp">
|
||||
|
||||
<FrameLayout
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/pTopLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:animateLayoutChanges="false"
|
||||
android:background="#00000000"
|
||||
android:clipToPadding="false"
|
||||
android:background="@color/c_background"
|
||||
android:clipToPadding="true"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
|
@ -43,10 +42,9 @@
|
|||
android:id="@+id/pTopbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:animateLayoutChanges="true"
|
||||
android:background="@color/c_background"
|
||||
android:elevation="4dp"
|
||||
android:gravity="left"
|
||||
android:gravity="start"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
@ -58,8 +56,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:animateLayoutChanges="true"
|
||||
android:gravity="left"
|
||||
android:paddingStart="8dp"
|
||||
android:gravity="start"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
@ -67,16 +64,16 @@
|
|||
tools:ignore="RtlHardcoded,UselessParent">
|
||||
|
||||
<ImageButton
|
||||
android:onClick="onLockSecure"
|
||||
android:id="@+id/pSearchLock"
|
||||
android:layout_width="31dp"
|
||||
android:layout_height="31dp"
|
||||
android:padding="6dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:background="@xml/gx_ripple_default_round"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:onClick="onLockSecure"
|
||||
android:padding="6dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@xml/ic_baseline_lock"
|
||||
android:translationZ="10dp"
|
||||
app:tint="@color/c_lock_tint"
|
||||
|
@ -86,10 +83,9 @@
|
|||
android:id="@+id/pSearchInput"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="-36dp"
|
||||
android:layout_marginStart="-35dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:focusableInTouchMode = "true"
|
||||
android:layout_marginEnd="18dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_weight="1"
|
||||
android:animateLayoutChanges="true"
|
||||
|
@ -97,14 +93,15 @@
|
|||
android:completionHintView="@layout/hint_view"
|
||||
android:dropDownAnchor="@id/pSearchEngineBar"
|
||||
android:ems="10"
|
||||
android:focusableInTouchMode="true"
|
||||
android:hint="@string/GENERAL_SEARCH_HINT"
|
||||
android:importantForAutofill="no"
|
||||
android:privateImeOptions="nm"
|
||||
android:inputType="textNoSuggestions"
|
||||
android:maxLines="1"
|
||||
android:paddingLeft="38dp"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingStart="40dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:popupElevation="0dp"
|
||||
android:privateImeOptions="nm"
|
||||
android:selectAllOnFocus="true"
|
||||
android:text="@string/GENERAL_HOME_URL"
|
||||
android:textColor="@color/c_text_v1"
|
||||
|
@ -126,10 +123,10 @@
|
|||
android:layout_marginTop="-1dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:background="@xml/hx_ripple_default_round"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:onClick="onVoiceClick"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:scaleX="1.1"
|
||||
android:scaleY="1.1"
|
||||
android:src="@xml/ic_baseline_keyboard_voice"
|
||||
|
@ -160,9 +157,9 @@
|
|||
android:background="@xml/gx_ripple_gray"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:onClick="onOpenMenuItem"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingStart="8dp"
|
||||
android:paddingTop="15dp"
|
||||
android:paddingRight="8dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingBottom="15dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/menu_item"
|
||||
|
@ -170,9 +167,22 @@
|
|||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</FrameLayout>
|
||||
|
||||
<com.google.android.gms.ads.AdView
|
||||
android:id="@+id/pAdView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:alpha="0"
|
||||
android:background="@color/clear_alpha"
|
||||
android:visibility="gone"
|
||||
app:adSize="SMART_BANNER"
|
||||
app:adUnitId="ca-app-pub-3940256099942544/6300978111"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pTopbar" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
@ -184,6 +194,8 @@
|
|||
android:layout_gravity="fill_vertical"
|
||||
android:layout_marginTop="0dp"
|
||||
android:layout_marginBottom="-60dp"
|
||||
android:isScrollContainer="true"
|
||||
android:measureAllChildren="true"
|
||||
android:background="@color/clear_alpha"
|
||||
android:fillViewport="true"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
@ -198,19 +210,18 @@
|
|||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pTopLayout">
|
||||
|
||||
<com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/pAdView"
|
||||
<com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.NestedGeckoView
|
||||
android:id="@+id/pWebView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:alpha="1"
|
||||
android:visibility="gone"
|
||||
android:background="@color/c_background"
|
||||
ads:adSize="SMART_BANNER"
|
||||
ads:adUnitId="ca-app-pub-3940256099942544/6300978111"
|
||||
ads:layout_constraintEnd_toEndOf="parent"
|
||||
ads:layout_constraintHorizontal_bias="0.5"
|
||||
ads:layout_constraintStart_toStartOf="parent"
|
||||
ads:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
</com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.NestedGeckoView>
|
||||
|
||||
<com.darkweb.genesissearchengine.widget.progressBar.AnimatedProgressBar
|
||||
android:id="@+id/pProgressBar"
|
||||
|
@ -226,27 +237,11 @@
|
|||
android:scaleY="1"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pAdView"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:shiftDuration="@integer/progress_shift_duration"
|
||||
app:wrapShiftDrawable="true"
|
||||
tools:progress="0" />
|
||||
|
||||
<com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.NestedGeckoView
|
||||
android:id="@+id/pWebView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:alpha="1"
|
||||
android:background="@color/clear_alpha"
|
||||
android:foreground="@color/c_background"
|
||||
android:minHeight="400dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pProgressBar"
|
||||
app:layout_constraintVertical_bias="1.0">
|
||||
|
||||
</com.darkweb.genesissearchengine.appManager.homeManager.geckoManager.NestedGeckoView>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
@ -309,6 +304,7 @@
|
|||
android:layout_width="90dp"
|
||||
android:layout_height="90dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:rotationY="@integer/angle_rtl_180"
|
||||
android:layout_marginTop="100dp"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:translationZ="3dp"
|
||||
|
@ -326,7 +322,7 @@
|
|||
android:gravity="start"
|
||||
android:maxHeight="20dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="Secured by Tor Network"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="#bfbfbf"
|
||||
|
@ -349,7 +345,7 @@
|
|||
android:gravity="start"
|
||||
android:maxHeight="20dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="Builtin Onion Search Engine"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="#bfbfbf"
|
||||
|
@ -372,7 +368,7 @@
|
|||
android:gravity="start"
|
||||
android:maxHeight="20dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="No Record and Digital Fingerprinting"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="#bfbfbf"
|
||||
|
@ -390,11 +386,13 @@
|
|||
android:layout_width="90dp"
|
||||
android:layout_height="90dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:rotationY="@integer/angle_rtl_180"
|
||||
android:layout_marginTop="10dp"
|
||||
android:translationZ="3dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/pGenesisLogo"
|
||||
app:srcCompat="@drawable/sheild_logo_bordered" />
|
||||
app:srcCompat="@drawable/sheild_logo_bordered"
|
||||
android:contentDescription="@string/GENERAL_TODO" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/pInfo2"
|
||||
|
@ -406,7 +404,7 @@
|
|||
android:gravity="start"
|
||||
android:maxHeight="20dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="Secured by Tor Network"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="#bfbfbf"
|
||||
|
@ -429,7 +427,7 @@
|
|||
android:gravity="start"
|
||||
android:maxHeight="20dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="Builtin Onion Search Engine"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="#bfbfbf"
|
||||
|
@ -452,7 +450,7 @@
|
|||
android:gravity="start"
|
||||
android:maxHeight="20dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="No Record and Digital Fingerprinting"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="#bfbfbf"
|
||||
|
@ -480,6 +478,7 @@
|
|||
<ImageView
|
||||
android:id="@+id/pGenesisLogoBottom"
|
||||
android:layout_width="90dp"
|
||||
android:rotationY="@integer/angle_rtl_180"
|
||||
android:layout_height="90dp"
|
||||
android:layout_marginStart="7dp"
|
||||
android:layout_marginTop="15dp"
|
||||
|
@ -499,7 +498,7 @@
|
|||
android:gravity="start"
|
||||
android:maxHeight="20dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="Secured by Tor Network"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="#bfbfbf"
|
||||
|
@ -522,7 +521,7 @@
|
|||
android:gravity="start"
|
||||
android:maxHeight="20dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="Builtin Onion Search Engine"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="#bfbfbf"
|
||||
|
@ -545,7 +544,7 @@
|
|||
android:gravity="start"
|
||||
android:maxHeight="20dp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="No Record and Digital Fingerprinting"
|
||||
android:textAlignment="textStart"
|
||||
android:textColor="#bfbfbf"
|
||||
|
@ -587,10 +586,11 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="#0A1727"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:text="Copyright © by Genesis Technologies | Built 1.0.2.2"
|
||||
android:text="@string/HOME_COPYRIGHT"
|
||||
android:textColor="#4a6868"
|
||||
android:textSize="13sp"
|
||||
android:textStyle="bold"
|
||||
|
@ -641,7 +641,7 @@
|
|||
android:minHeight="80dp"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingTop="18dp"
|
||||
android:paddingRight="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:paddingBottom="15dp"
|
||||
android:text="@string/HOME_LOADING"
|
||||
android:textAlignment="textStart"
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
android:orientation="horizontal"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left"
|
||||
android:gravity="start"
|
||||
android:background="@color/white"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@ -56,7 +56,7 @@
|
|||
android:layout_weight="1"
|
||||
android:orientation="horizontal"
|
||||
android:layout_gravity="bottom"
|
||||
android:gravity="right"
|
||||
android:gravity="end"
|
||||
android:background="@color/white"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
android:layout_width="1dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:background="@color/c_view_divier_background"
|
||||
android:layout_marginBottom="5dp"
|
||||
tools:ignore="RtlHardcoded" />
|
||||
|
|
|
@ -3,10 +3,13 @@
|
|||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:textDirection="locale"
|
||||
android:layout_gravity="top"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ScrollView
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:layout_width="240dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="5dp"
|
||||
|
@ -98,9 +101,9 @@
|
|||
android:id="@+id/menu11"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="52dp"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="0dp"
|
||||
android:layout_marginRight="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:background="@xml/gx_side_item"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
|
@ -122,7 +125,7 @@
|
|||
android:layout_height="50dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center_vertical"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingStart="3dp"
|
||||
android:text="@string/HOME_MENU__NEW_TABS"
|
||||
android:textAllCaps="false"
|
||||
|
@ -135,9 +138,9 @@
|
|||
android:id="@+id/menu12"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="52dp"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginRight="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:background="@xml/gx_side_item"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
|
@ -160,7 +163,7 @@
|
|||
android:layout_height="50dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center_vertical"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingStart="3dp"
|
||||
android:text="@string/HOME_MENU__ORBOT_LOGS"
|
||||
android:textAllCaps="false"
|
||||
|
@ -173,9 +176,9 @@
|
|||
android:id="@+id/pMenuOpenNewTab"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="52dp"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginRight="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:background="@xml/gx_side_item"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
|
@ -197,7 +200,7 @@
|
|||
android:layout_height="50dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center_vertical"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingStart="3dp"
|
||||
android:text="@string/HOME_MENU_OPEN_BOOKMARK"
|
||||
android:textAllCaps="false"
|
||||
|
@ -210,9 +213,9 @@
|
|||
android:id="@+id/menu7"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="52dp"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginRight="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:background="@xml/gx_side_item"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
|
@ -234,7 +237,7 @@
|
|||
android:layout_height="50dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center_vertical"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingStart="3dp"
|
||||
android:text="@string/HOME_MENU_HISTORY"
|
||||
android:textAllCaps="false"
|
||||
|
@ -247,9 +250,9 @@
|
|||
android:id="@+id/menu8"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="52dp"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginRight="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:background="@xml/gx_side_item"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
|
@ -271,7 +274,7 @@
|
|||
android:layout_height="50dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center_vertical"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingStart="3dp"
|
||||
android:text="@string/HOME_MENU_DOWNLOAD"
|
||||
android:textAllCaps="false"
|
||||
|
@ -284,9 +287,9 @@
|
|||
android:id="@+id/menu25"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="52dp"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginRight="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:background="@xml/gx_side_item"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
|
@ -308,7 +311,7 @@
|
|||
android:layout_height="50dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center_vertical"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingStart="3dp"
|
||||
android:text="@string/HOME_MENU_LANGUAGE"
|
||||
android:textAllCaps="false"
|
||||
|
@ -321,9 +324,9 @@
|
|||
android:id="@+id/pMenuFind"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="52dp"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginRight="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:background="@xml/gx_side_item"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
|
@ -345,7 +348,7 @@
|
|||
android:layout_height="50dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center_vertical"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingStart="3dp"
|
||||
android:text="@string/HOME_MENU_FIND"
|
||||
android:textAllCaps="false"
|
||||
|
@ -359,15 +362,15 @@
|
|||
android:id="@+id/menu26"
|
||||
android:layout_width="239dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginRight="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:background="@xml/gx_side_item"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:onClick="onMenuItemInvoked"
|
||||
android:orientation="horizontal"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:textAllCaps="false"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
@ -389,7 +392,7 @@
|
|||
android:background="@color/clear_alpha"
|
||||
android:clickable="false"
|
||||
android:focusable="false"
|
||||
android:gravity="left|center_vertical"
|
||||
android:gravity="start|center_vertical"
|
||||
android:onClick="onMenuItemInvoked"
|
||||
android:paddingStart="8dp"
|
||||
android:text="@string/HOME_MENU_DESKTOP"
|
||||
|
@ -402,14 +405,14 @@
|
|||
android:id="@+id/menu27"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginLeft="0dp"
|
||||
android:layout_marginStart="0dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@color/clear_alpha"
|
||||
android:buttonTint="@color/c_navigation_tint"
|
||||
android:clickable="false"
|
||||
android:focusable="false"
|
||||
android:gravity="left|center_vertical"
|
||||
android:paddingLeft="0dp"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingStart="0dp"
|
||||
android:textColor="@color/c_text_home_menu"
|
||||
android:textSize="16sp"
|
||||
tools:ignore="RtlHardcoded,RtlSymmetry" />
|
||||
|
@ -419,9 +422,9 @@
|
|||
android:id="@+id/menu6"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="52dp"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginRight="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:background="@xml/gx_side_item"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
|
@ -443,7 +446,7 @@
|
|||
android:layout_height="50dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center_vertical"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingStart="3dp"
|
||||
android:text="@string/HOME_MENU_SETTING"
|
||||
android:textAllCaps="false"
|
||||
|
@ -456,9 +459,9 @@
|
|||
android:id="@+id/pMenuQuit"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="52dp"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginRight="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:background="@xml/gx_ripple_gray_bottom"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
|
@ -480,7 +483,7 @@
|
|||
android:layout_height="50dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center_vertical"
|
||||
android:gravity="start|center_vertical"
|
||||
android:paddingStart="3dp"
|
||||
android:text="@string/HOME_MENU_QUIT"
|
||||
android:textAllCaps="false"
|
||||
|
|
|
@ -40,6 +40,8 @@
|
|||
android:paddingEnd="7dp"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:layout_width="match_parent"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/GENERAL_TODO" />
|
||||
|
||||
|
@ -49,6 +51,8 @@
|
|||
android:paddingStart="7dp"
|
||||
android:paddingEnd="7dp"
|
||||
android:textColor="@color/c_text_v6"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/GENERAL_TODO" />
|
||||
|
|
|
@ -41,8 +41,8 @@
|
|||
android:layout_marginTop="-3dp"
|
||||
android:gravity="center_vertical|start"
|
||||
android:onClick="onClose"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:text="@string/LANGUAGE_TITLE"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:textSize="17sp"
|
||||
|
@ -65,7 +65,7 @@
|
|||
android:onClick="onOpenInfo"
|
||||
android:padding="0dp"
|
||||
android:paddingStart="3dp"
|
||||
android:src="@drawable/info"
|
||||
android:src="@xml/ic_info"
|
||||
app:tint="@color/c_icon_tint_light" />
|
||||
|
||||
</LinearLayout>
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
android:onClick="onOpenInfo"
|
||||
android:background="@xml/gx_ripple_gray_round_left"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:src="@drawable/info"
|
||||
android:src="@xml/ic_info"
|
||||
app:tint="@color/c_icon_tint_light" />
|
||||
|
||||
</LinearLayout>
|
||||
|
@ -83,7 +83,6 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_weight="40"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginStart="20dp"
|
||||
android:text="@string/BRIDGE_BASIC_SETTING"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
@ -121,7 +120,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_weight="40"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/ORBOT_TITLE"
|
||||
/>
|
||||
|
@ -151,7 +150,6 @@
|
|||
android:paddingStart="15dp"
|
||||
android:layout_weight="1"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:layout_marginStart="20dp"
|
||||
android:text="@string/ORBOT_SETTING_ENABLE_VPN"
|
||||
/>
|
||||
|
||||
|
@ -190,7 +188,6 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/ORBOT_SETTING_BRIDGE_ENABLE"
|
||||
/>
|
||||
|
@ -291,7 +288,6 @@
|
|||
android:textSize="16sp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:paddingStart="7dp"
|
||||
android:paddingEnd="7dp"
|
||||
android:layout_weight="40"
|
||||
android:layout_marginStart="8dp"
|
||||
|
|
|
@ -37,8 +37,8 @@
|
|||
android:layout_marginTop="-3dp"
|
||||
android:gravity="center_vertical|start"
|
||||
android:onClick="onClose"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:text="@string/ORBOT_LOG"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:textSize="17sp"
|
||||
|
@ -113,7 +113,7 @@
|
|||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_weight="40"
|
||||
android:background="@color/clear_alpha"
|
||||
android:paddingBottom="10dp"
|
||||
|
|
|
@ -86,8 +86,6 @@
|
|||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:background="@color/c_background"
|
||||
android:paddingEnd="15dp"
|
||||
android:paddingStart="15dp"
|
||||
android:layout_marginBottom="0dp"
|
||||
android:orientation="horizontal"
|
||||
android:layout_height="40dp">
|
||||
|
@ -99,7 +97,8 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_weight="40"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:text="@string/BRIDGE_BASIC_SETTING"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
@ -117,7 +116,8 @@
|
|||
android:layout_weight="40"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:background="@color/clear_alpha"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginEnd="15dp"
|
||||
android:text="@string/ORBOT_DESCRIPTION"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
@ -144,7 +144,6 @@
|
|||
android:gravity="center_vertical"
|
||||
android:layout_weight="40"
|
||||
android:padding="10dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/PROXY_SUB_HEADER1"
|
||||
/>
|
||||
|
@ -164,7 +163,7 @@
|
|||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_weight="1"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="@string/ORBOT_PROXY_STATUS_INFO"
|
||||
|
@ -205,8 +204,7 @@
|
|||
android:layout_height="50dp"
|
||||
android:gravity="center_vertical"
|
||||
android:layout_weight="40"
|
||||
android:padding="10dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:textStyle="bold"
|
||||
android:text="@string/PROXY_SUB_HEADER2"
|
||||
/>
|
||||
|
@ -229,8 +227,8 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:textColor="@color/c_text_v6"
|
||||
android:paddingEnd="20dp"
|
||||
android:layout_marginStart="20dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:text="@string/PROXY_VPN_STATUS"
|
||||
/>
|
||||
|
||||
|
@ -260,9 +258,9 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:paddingEnd="20dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:textColor="@color/c_text_v6"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:text="@string/PROXY_BRIDGE_STATUS"
|
||||
/>
|
||||
|
||||
|
@ -280,7 +278,8 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="20dp"
|
||||
android:padding="10dp"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginBottom="15dp"
|
||||
android:background="@xml/ax_border_top"
|
||||
|
@ -292,6 +291,8 @@
|
|||
android:text="@string/PROXY_SUB_HEADER3"
|
||||
android:textColor="@color/c_text_v7"
|
||||
android:textSize="13.5sp"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
|
@ -300,6 +301,8 @@
|
|||
android:layout_marginTop="10dp"
|
||||
android:textColor="@color/c_text_v6"
|
||||
android:text="@string/PROXY_CONNECTIVITY_SETTING_INFO"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:textSize="13.5sp" />
|
||||
</LinearLayout>
|
||||
|
||||
|
|
|
@ -45,8 +45,8 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="-3dp"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:onClick="onNavigationBackPressed"
|
||||
android:gravity="center_vertical|start"
|
||||
android:text="@string/SETTING_HEADER"
|
||||
|
@ -70,7 +70,7 @@
|
|||
android:onClick="onOpenInfo"
|
||||
android:background="@xml/gx_ripple_gray_round_left"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:src="@drawable/info"
|
||||
android:src="@xml/ic_info"
|
||||
app:tint="@color/c_icon_tint_light" />
|
||||
|
||||
</LinearLayout>
|
||||
|
@ -84,28 +84,29 @@
|
|||
android:paddingBottom="10dp"
|
||||
android:background="@xml/gx_ripple_gray"
|
||||
android:onClick="onDefaultBrowser"
|
||||
android:orientation="horizontal"
|
||||
android:weightSum="8">
|
||||
android:weightSum="8"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="45dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:padding="10dp"
|
||||
android:layout_marginStart="7dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
app:tint="@color/c_icon_tint"
|
||||
android:src="@xml/ic_baseline_browser"
|
||||
android:contentDescription="@string/GENERAL_TODO" />
|
||||
|
||||
<Button
|
||||
android:layout_width="match_parent"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="7"
|
||||
android:layout_height="match_parent"
|
||||
android:alpha="1"
|
||||
android:background="@android:color/transparent"
|
||||
android:clickable="false"
|
||||
android:paddingEnd="20dp"
|
||||
android:paddingStart="3dp"
|
||||
android:text="@string/SETTING_DEFAULT_BROWSER"
|
||||
android:textAlignment="textStart"
|
||||
android:textAllCaps="false"
|
||||
|
@ -184,12 +185,12 @@
|
|||
android:layout_height="match_parent"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:autoMirrored="true"
|
||||
android:background="@android:color/transparent"
|
||||
android:clickable="false"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
|
||||
android:tint="@color/c_navigation_tint"
|
||||
android:src="@xml/ic_arrow_right" />
|
||||
android:src="@xml/ic_arrow_right"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
|
@ -43,8 +43,8 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="-3dp"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:onClick="onClose"
|
||||
android:gravity="center_vertical|start"
|
||||
android:text="@string/SETTING_ACCESSIBILITY_HEADER"
|
||||
|
@ -68,7 +68,7 @@
|
|||
android:onClick="onOpenInfo"
|
||||
android:background="@xml/gx_ripple_gray_round_left"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:src="@drawable/info"
|
||||
android:src="@xml/ic_info"
|
||||
app:tint="@color/c_icon_tint_light" />
|
||||
|
||||
</LinearLayout>
|
||||
|
@ -223,7 +223,6 @@
|
|||
android:background="@android:color/transparent"
|
||||
android:clickable="false"
|
||||
android:padding="0dp"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/SETTING_INTERACTION_INFO"
|
||||
android:textAlignment="textStart"
|
||||
android:textAllCaps="false"
|
||||
|
|
|
@ -45,8 +45,8 @@
|
|||
android:layout_marginTop="-3dp"
|
||||
android:gravity="center_vertical|start"
|
||||
android:onClick="onClose"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:text="@string/SETTING_ADVANCE_HEADER"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:textSize="17sp"
|
||||
|
@ -68,7 +68,7 @@
|
|||
android:onClick="onOpenInfo"
|
||||
android:padding="0dp"
|
||||
android:paddingStart="7dp"
|
||||
android:src="@drawable/info"
|
||||
android:src="@xml/ic_info"
|
||||
app:tint="@color/c_icon_tint_light" />
|
||||
|
||||
</LinearLayout>
|
||||
|
@ -85,7 +85,6 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginTop="00dp"
|
||||
android:layout_weight="40"
|
||||
android:text="@string/SETTING_ADVANCE_TAB"
|
||||
|
@ -261,7 +260,6 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_weight="40"
|
||||
android:layout_marginTop="00dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:text="@string/SETTING_ADVANCE_DATA_SAVER"
|
||||
/>
|
||||
<TextView
|
||||
|
@ -285,8 +283,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_marginTop="10dp"
|
||||
android:background="@xml/sx_border_left"
|
||||
android:layout_marginStart="15dp"
|
||||
android:paddingStart="5dp"
|
||||
android:orientation="vertical"
|
||||
android:layout_height="wrap_content" >
|
||||
|
||||
|
|
|
@ -44,8 +44,8 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="-3dp"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:onClick="onClose"
|
||||
android:gravity="center_vertical|start"
|
||||
android:text="@string/SETTING_CLEAR_HEADER"
|
||||
|
@ -69,7 +69,7 @@
|
|||
android:onClick="onOpenInfo"
|
||||
android:background="@xml/gx_ripple_gray_round_left"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:src="@drawable/info"
|
||||
android:src="@xml/ic_info"
|
||||
app:tint="@color/c_icon_tint_light" />
|
||||
|
||||
</LinearLayout>
|
||||
|
|
|
@ -41,8 +41,8 @@
|
|||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:onClick="onClose"
|
||||
android:layout_marginTop="-3dp"
|
||||
android:gravity="center_vertical|start"
|
||||
|
@ -67,7 +67,7 @@
|
|||
android:onClick="onOpenInfo"
|
||||
android:background="@xml/gx_ripple_gray_round_left"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:src="@drawable/info"
|
||||
android:src="@xml/ic_info"
|
||||
app:tint="@color/c_icon_tint_light" />
|
||||
|
||||
</LinearLayout>
|
||||
|
@ -88,7 +88,6 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_weight="40"
|
||||
android:layout_marginTop="00dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:text="@string/SETTING_GENERAL_HOME"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
@ -105,17 +104,17 @@
|
|||
android:layout_marginTop="2dp"
|
||||
android:alpha="1"
|
||||
android:id="@+id/pHomePageText"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:background="@android:color/transparent"
|
||||
android:clickable="false"
|
||||
android:padding="0dp"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="@string/SETTING_GENERAL_HOME_INFO"
|
||||
android:textAlignment="textStart"
|
||||
android:textAllCaps="false"
|
||||
android:textColor="@color/c_text_v6"
|
||||
android:textSize="13.5sp"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
android:textSize="13.5sp" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_marginTop="10dp"
|
||||
|
@ -215,7 +214,6 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_weight="40"
|
||||
android:layout_marginTop="00dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:text="@string/SETTING_GENERAL_THEME"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
@ -249,7 +247,6 @@
|
|||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:background="@xml/sx_border_left"
|
||||
android:layout_marginStart="15dp"
|
||||
android:paddingStart="4dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:orientation="vertical"
|
||||
|
@ -455,7 +452,6 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_weight="40"
|
||||
android:layout_marginTop="00dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:text="@string/SETTING_GENERAL"
|
||||
/>
|
||||
<TextView
|
||||
|
@ -563,8 +559,8 @@
|
|||
android:background="@android:color/transparent"
|
||||
android:clickable="false"
|
||||
android:padding="0dp"
|
||||
android:paddingStart="25dp"
|
||||
android:paddingEnd="25dp"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="@string/SETTING_GENERAL_LANGUAGE"
|
||||
android:textAlignment="textStart"
|
||||
android:textAllCaps="false"
|
||||
|
@ -580,8 +576,8 @@
|
|||
android:background="@android:color/transparent"
|
||||
android:clickable="false"
|
||||
android:padding="0dp"
|
||||
android:paddingStart="25dp"
|
||||
android:paddingEnd="25dp"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="@string/SETTING_GENERAL_LANGUAGE_INFO"
|
||||
android:textAlignment="textStart"
|
||||
android:textAllCaps="false"
|
||||
|
|
|
@ -41,8 +41,8 @@
|
|||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:onClick="onClose"
|
||||
android:layout_marginTop="-3dp"
|
||||
android:gravity="center_vertical|start"
|
||||
|
@ -67,7 +67,7 @@
|
|||
android:onClick="onOpenInfo"
|
||||
android:background="@xml/gx_ripple_gray_round_left"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:src="@drawable/info"
|
||||
android:src="@xml/ic_info"
|
||||
app:tint="@color/c_icon_tint_light" />
|
||||
|
||||
</LinearLayout>
|
||||
|
@ -116,15 +116,15 @@
|
|||
android:alpha="1"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:background="@android:color/transparent"
|
||||
android:clickable="false"
|
||||
android:padding="0dp"
|
||||
android:text="@string/SETTING_ORBOT_LIST_VIEW_INFO"
|
||||
android:textAlignment="textStart"
|
||||
android:textAllCaps="false"
|
||||
android:textColor="@color/c_text_v6"
|
||||
android:textSize="13.5sp"
|
||||
tools:ignore="RtlSymmetry" />
|
||||
android:textSize="13.5sp"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
|
|
@ -41,8 +41,8 @@
|
|||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:onClick="onClose"
|
||||
android:layout_marginTop="-3dp"
|
||||
android:gravity="center_vertical|start"
|
||||
|
@ -67,7 +67,7 @@
|
|||
android:onClick="onOpenInfo"
|
||||
android:background="@xml/gx_ripple_gray_round_left"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:src="@drawable/info"
|
||||
android:src="@xml/ic_info"
|
||||
app:tint="@color/c_icon_tint_light" />
|
||||
|
||||
</LinearLayout>
|
||||
|
@ -90,7 +90,6 @@
|
|||
android:paddingEnd="15dp"
|
||||
android:layout_weight="40"
|
||||
android:layout_marginTop="00dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:text="@string/SETTING_NOTIFICATION_HEADER_1"
|
||||
/>
|
||||
<TextView
|
||||
|
|
|
@ -41,8 +41,8 @@
|
|||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:onClick="onClose"
|
||||
android:layout_marginTop="-3dp"
|
||||
android:gravity="center_vertical|start"
|
||||
|
@ -67,7 +67,7 @@
|
|||
android:onClick="onOpenInfo"
|
||||
android:background="@xml/gx_ripple_gray_round_left"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:src="@drawable/info"
|
||||
android:src="@xml/ic_info"
|
||||
app:tint="@color/c_icon_tint_light" />
|
||||
|
||||
</LinearLayout>
|
||||
|
@ -125,7 +125,6 @@
|
|||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_weight="1"
|
||||
android:clickable="false"
|
||||
android:orientation="vertical">
|
||||
|
@ -150,12 +149,13 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="2dp"
|
||||
android:alpha="1"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:background="@android:color/transparent"
|
||||
android:clickable="false"
|
||||
android:paddingStart="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:text="@string/SETTING_TRACKING_INFO"
|
||||
android:textAlignment="textStart"
|
||||
android:textAllCaps="false"
|
||||
android:textColor="@color/c_text_v6"
|
||||
android:textSize="13.5sp"
|
||||
|
@ -360,7 +360,6 @@
|
|||
android:layout_marginTop="10dp"
|
||||
android:background="@xml/sx_border_left"
|
||||
android:paddingStart="4dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
tools:ignore="RtlSymmetry">
|
||||
|
@ -384,12 +383,12 @@
|
|||
android:layoutDirection="rtl"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:clickable="false"
|
||||
android:buttonTint="@color/c_radio_tint"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:layout_marginRight="10dp"
|
||||
android:paddingLeft="15dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/SETTING_PRIVACY_COOKIES_OPTION1"
|
||||
tools:ignore="RtlHardcoded" />
|
||||
</LinearLayout>
|
||||
|
@ -411,11 +410,11 @@
|
|||
android:layoutDirection="rtl"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:layout_marginRight="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:buttonTint="@color/c_radio_tint"
|
||||
android:paddingLeft="15dp"
|
||||
android:paddingStart="15dp"
|
||||
android:clickable="false"
|
||||
android:text="@string/SETTING_PRIVACY_COOKIES_OPTION2"
|
||||
tools:ignore="RtlHardcoded" />
|
||||
|
@ -439,11 +438,11 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:clickable="false"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:buttonTint="@color/c_radio_tint"
|
||||
android:layout_marginRight="10dp"
|
||||
android:paddingLeft="15dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/SETTING_PRIVACY_COOKIES_OPTION3"
|
||||
tools:ignore="RtlHardcoded" />
|
||||
</LinearLayout>
|
||||
|
@ -466,11 +465,11 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:clickable="false"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="15dp"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:layout_marginRight="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:buttonTint="@color/c_radio_tint"
|
||||
android:paddingLeft="15dp"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/SETTING_PRIVACY_COOKIES_OPTION4"
|
||||
tools:ignore="RtlHardcoded" />
|
||||
</LinearLayout>
|
||||
|
|
|
@ -43,8 +43,8 @@
|
|||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:onClick="onClose"
|
||||
android:layout_marginTop="-3dp"
|
||||
android:gravity="center_vertical|start"
|
||||
|
@ -69,7 +69,7 @@
|
|||
android:onClick="onOpenInfo"
|
||||
android:background="@xml/gx_ripple_gray_round_left"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:src="@drawable/info"
|
||||
android:src="@xml/ic_info"
|
||||
app:tint="@color/c_icon_tint_light" />
|
||||
</LinearLayout>
|
||||
|
||||
|
@ -314,7 +314,8 @@
|
|||
android:padding="0dp"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/SETTING_SEARCH_GOOGLE"
|
||||
android:textAlignment="textStart"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:textAllCaps="false"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:textSize="15sp"
|
||||
|
@ -393,7 +394,8 @@
|
|||
android:padding="0dp"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/SETTING_SEARCH_AMAZON"
|
||||
android:textAlignment="textStart"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:textAllCaps="false"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:textSize="15sp"
|
||||
|
@ -472,7 +474,8 @@
|
|||
android:padding="0dp"
|
||||
android:paddingStart="15dp"
|
||||
android:text="@string/SETTING_SEARCH_BING"
|
||||
android:textAlignment="textStart"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:textAllCaps="false"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:textSize="15sp"
|
||||
|
|
|
@ -41,8 +41,8 @@
|
|||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:onClick="onClose"
|
||||
android:layout_marginTop="-3dp"
|
||||
android:gravity="center_vertical|start"
|
||||
|
@ -68,7 +68,7 @@
|
|||
android:autoMirrored="true"
|
||||
android:background="@xml/gx_ripple_gray_round_left"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:src="@drawable/info"
|
||||
android:src="@xml/ic_info"
|
||||
app:tint="@color/c_icon_tint_light" />
|
||||
|
||||
</LinearLayout>
|
||||
|
@ -133,7 +133,6 @@
|
|||
android:background="@xml/sx_border_left"
|
||||
android:paddingStart="4dp"
|
||||
android:paddingEnd="4dp"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
|
@ -149,28 +148,30 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="13dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:background="@xml/gx_ripple_gray"
|
||||
android:onClick="onTracking"
|
||||
android:orientation="vertical">
|
||||
<RadioButton
|
||||
android:id="@+id/pTrackingRadioOption1"
|
||||
android:layoutDirection="rtl"
|
||||
android:layout_width="match_parent"
|
||||
android:paddingRight="15dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:clickable="false"
|
||||
android:buttonTint="@color/c_radio_tint"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:layout_marginRight="10dp"
|
||||
android:paddingLeft="15dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:textDirection="locale"
|
||||
android:textAlignment="viewStart"
|
||||
android:textSize="15sp"
|
||||
android:text="@string/SETTING_PRIVACY_TRACKING_OPTION1"
|
||||
tools:ignore="RtlHardcoded"
|
||||
android:layout_height="wrap_content" />
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginStart="42dp"
|
||||
android:layout_marginEnd="42dp"
|
||||
android:layout_marginTop="-2dp"
|
||||
android:paddingEnd="55dp"
|
||||
android:textSize="13sp"
|
||||
|
@ -188,6 +189,8 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="13dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:background="@xml/gx_ripple_gray"
|
||||
android:onClick="onTracking"
|
||||
android:orientation="vertical">
|
||||
|
@ -195,13 +198,13 @@
|
|||
android:id="@+id/pTrackingRadioOption2"
|
||||
android:layoutDirection="rtl"
|
||||
android:layout_width="match_parent"
|
||||
android:paddingRight="15dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:clickable="false"
|
||||
android:buttonTint="@color/c_radio_tint"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:layout_marginRight="10dp"
|
||||
android:paddingLeft="15dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:textSize="15sp"
|
||||
android:text="@string/SETTING_PRIVACY_TRACKING_OPTION2"
|
||||
tools:ignore="RtlHardcoded"
|
||||
|
@ -209,7 +212,8 @@
|
|||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginStart="42dp"
|
||||
android:layout_marginEnd="42dp"
|
||||
android:layout_marginTop="-2dp"
|
||||
android:paddingEnd="55dp"
|
||||
android:textSize="13sp"
|
||||
|
@ -227,6 +231,8 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="13dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:background="@xml/gx_ripple_gray"
|
||||
android:onClick="onTracking"
|
||||
android:orientation="vertical">
|
||||
|
@ -234,13 +240,12 @@
|
|||
android:id="@+id/pTrackingRadioOption3"
|
||||
android:layoutDirection="rtl"
|
||||
android:layout_width="match_parent"
|
||||
android:paddingRight="15dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:clickable="false"
|
||||
android:buttonTint="@color/c_radio_tint"
|
||||
android:textColor="@color/c_text_v1"
|
||||
android:layout_marginRight="10dp"
|
||||
android:paddingLeft="15dp"
|
||||
android:paddingStart="10dp"
|
||||
android:textSize="15sp"
|
||||
android:text="@string/SETTING_PRIVACY_TRACKING_OPTION3"
|
||||
tools:ignore="RtlHardcoded"
|
||||
|
@ -248,7 +253,8 @@
|
|||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginStart="42dp"
|
||||
android:layout_marginEnd="42dp"
|
||||
android:layout_marginTop="-2dp"
|
||||
android:paddingEnd="55dp"
|
||||
android:textSize="13sp"
|
||||
|
|
|
@ -1,15 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_gravity="top"
|
||||
android:stateListAnimator="@null"
|
||||
android:outlineProvider="bounds"
|
||||
android:background="@xml/hx_menu_popup_container"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="180dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:background="@xml/hx_menu_popup_container"
|
||||
android:elevation="4dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:ignore="UselessParent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="200dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:background="@xml/hx_menu_popup"
|
||||
|
@ -88,5 +101,5 @@
|
|||
android:textSize="14.5sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
||||
</LinearLayout>
|
|
@ -4,13 +4,25 @@
|
|||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_gravity="top"
|
||||
android:stateListAnimator="@null"
|
||||
android:outlineProvider="bounds"
|
||||
android:background="@xml/hx_menu_popup_container"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="180dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginStart="5dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginEnd="5dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:background="@xml/hx_menu_popup_container"
|
||||
android:elevation="4dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:ignore="UselessParent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="200dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:background="@xml/hx_menu_popup"
|
||||
|
@ -81,5 +93,5 @@
|
|||
android:textSize="14.5sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
||||
</LinearLayout>
|
|
@ -30,6 +30,8 @@
|
|||
android:layout_height="42dp"
|
||||
android:textStyle="bold"
|
||||
android:textSize="17sp"
|
||||
android:text="A"
|
||||
android:translationZ="3dp"
|
||||
android:textAlignment="center"
|
||||
android:textColor="@color/white"
|
||||
android:background="@xml/hx_circle_favicon"
|
||||
|
@ -67,6 +69,7 @@
|
|||
android:layout_height="43dp"
|
||||
android:visibility="gone"
|
||||
android:alpha="0"
|
||||
android:translationZ="3dp"
|
||||
android:src="@drawable/tick_recycler_view"
|
||||
android:gravity="center_vertical"
|
||||
tools:ignore="RtlCompat"
|
||||
|
|
|
@ -32,9 +32,9 @@
|
|||
android:onClick="onMenuTrigger"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="52dp"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="0dp"
|
||||
android:layout_marginRight="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:background="@xml/gx_side_item_top"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
|
@ -64,9 +64,9 @@
|
|||
android:onClick="onMenuTrigger"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="52dp"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginRight="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:background="@xml/gx_side_item"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
|
@ -96,9 +96,9 @@
|
|||
android:onClick="onMenuTrigger"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="52dp"
|
||||
android:layout_marginLeft="1dp"
|
||||
android:layout_marginStart="1dp"
|
||||
android:layout_marginTop="1dp"
|
||||
android:layout_marginRight="1dp"
|
||||
android:layout_marginEnd="1dp"
|
||||
android:background="@xml/gx_side_item_bottom"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
|
|
|
@ -95,9 +95,9 @@
|
|||
android:background="@xml/gx_ripple_gray"
|
||||
android:contentDescription="@string/GENERAL_TODO"
|
||||
android:onClick="openTabMenu"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingStart="8dp"
|
||||
android:paddingTop="15dp"
|
||||
android:paddingRight="8dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingBottom="15dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/menu_item"
|
||||
|
|
|
@ -2,51 +2,51 @@
|
|||
|
||||
<!-- Application Strings -->
|
||||
<string name="app_name" translatable="false">1111</string>
|
||||
<string name="GENERAL_SEARCH_HINT" translatable="true">search or type a weblink</string>
|
||||
<string name="GENERAL_SEARCH_HINT" translatable="true">search something or type a weblink</string>
|
||||
<string name="GENERAL_FIND_HINT" translatable="true">find in page</string>
|
||||
<string name="GENERAL_SEARCH_ENGINE" translatable="true">search engine</string>
|
||||
<string name="GENERAL_HOME_URL" translatable="false">https://genesis.onion</string>
|
||||
<string name="GENERAL_ERROR_TITLE" translatable="true">\u0020\u0020\u0020 opps! Something Went Wrong</string>
|
||||
<string name="GENERAL_ERROR_TITLE" translatable="true">opps! something has went wrong</string>
|
||||
<string name="GENERAL_TODO" translatable="true">todo</string>
|
||||
<string name="GENERAL_PROJECT_NAME" translatable="false">1111 search engine</string>
|
||||
<string name="GENERAL_LOADING" translatable="true">digital freedom</string>
|
||||
<string name="GENERAL_RELOAD" translatable="true">reload</string>
|
||||
<string name="GENERAL_INTERNET_ERROR_MESSAGE" translatable="true">these might be the problems you are facing. webpage or website might not be working. your internet connection might be poor. you might be using a proxy. website might be blocked by firewall</string>
|
||||
<string name="GENERAL_INTERNET_ERROR_MESSAGE" translatable="true">you are facing the one of the following problem. webpage or website might not be working. your internet connection might be poor. you might be using a proxy. website might be blocked by firewall</string>
|
||||
<string name="GENERAL_FILE_PROVIDER_AUTHORITY" translatable="false">com.darkweb.genesissearchengine.fileprovider</string>
|
||||
<string name="GENERAL_DEFAULT_HINT_SUGGESTION" translatable="true">BBC | Israel Strikes Again</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="SETTING_DEFAULT_LANGUAGE" translatable="false">ru</string>
|
||||
<string name="SETTING_BASIC_SETTING" translatable="true">basic customizing</string>
|
||||
<string name="SETTING_BASIC_SETTING" translatable="true">System Setting</string>
|
||||
<string name="SETTING_DEFAULT_BROWSER" translatable="true">make 1111 your default browser</string>
|
||||
<string name="SETTING_HEADER" translatable="true">customize</string>
|
||||
<string name="SETTING_HEADER" translatable="true">System Setting</string>
|
||||
<string name="SETTING_SEARCH_ENGINE" translatable="true">search Engine</string>
|
||||
<string name="SETTING_JAVASCRIPT" translatable="true">javascript</string>
|
||||
<string name="SETTING_CLEAR_HISTORY" translatable="true">remove browsed web links</string>
|
||||
<string name="SETTING_FONT_TITLE" translatable="true">font customize</string>
|
||||
<string name="SETTING_ADJUST_FONT" translatable="true">customized font</string>
|
||||
<string name="SETTING_ADJUST_FONT" translatable="true">System Font Constomization</string>
|
||||
<string name="SETTING_MANUAL_FONT" translatable="true">change font automatically</string>
|
||||
<string name="SETTING_COOKIE_TEXT_INFO" translatable="true">cookie customize</string>
|
||||
<string name="SETTING_COOKIE_TEXT_INFO" translatable="true">Cookie Setting</string>
|
||||
<string name="SETTING_COOKIE" translatable="true">cookies</string>
|
||||
<string name="SETTING_NOTIFICATION_HEADER" translatable="true">customize | notification</string>
|
||||
<string name="SETTING_NOTIFICATION_HEADER" translatable="true">System Setting . Notification</string>
|
||||
<string name="SETTING_NOTIFICATION_HEADER_1" translatable="true">notifications</string>
|
||||
<string name="SETTING_NOTIFICATION_HEADER_1_INFO" translatable="true">manage notification</string>
|
||||
<string name="SETTING_NOTIFICATION_HEADER_1_INFO" translatable="true">change notification preferences</string>
|
||||
<string name="SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION" translatable="true">condition of network and notifications</string>
|
||||
<string name="SETTING_NOTIFICATION_DISABLE_STATUS_NOTIFICATION_INFO" translatable="true">local notifications</string>
|
||||
<string name="SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER" translatable="true">customize device notification</string>
|
||||
<string name="SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER" translatable="true">customize Software notification</string>
|
||||
<string name="SETTING_NOTIFICATION_OPEN_NOTIFICATION_MANAGER_INFO" translatable="true">system notifications</string>
|
||||
<string name="SETTING_ORBOT_LOG_HEADER" translatable="true">customize logs</string>
|
||||
<string name="SETTING_ORBOT_LIST_VIEW" translatable="true">show logs in complex list view</string>
|
||||
<string name="SETTING_ORBOT_LIST_VIEW_INFO" translatable="true">toogle between classic and complex customizing view</string>
|
||||
<string name="SETTING_ORBOT_LOG_HEADER" translatable="true">change the way how system Log appear</string>
|
||||
<string name="SETTING_ORBOT_LIST_VIEW" translatable="true">show Log using modern list view</string>
|
||||
<string name="SETTING_ORBOT_LIST_VIEW_INFO" translatable="true">toogle between classic and modern list view</string>
|
||||
<string name="SETTING_SEARCH" translatable="true">manage search engine</string>
|
||||
<string name="SETTING_SEARCH_INFO" translatable="true">add, set default. show suggestions</string>
|
||||
<string name="SETTING_NOTIFICATION" translatable="true">manage notifications</string>
|
||||
<string name="SETTING_NOTIFICATION_INFO" translatable="true">new features, condition of network</string>
|
||||
<string name="SETTING_SEARCH_HEADER" translatable="true">customize | search</string>
|
||||
<string name="SETTING_SEARCH_HEADER" translatable="true">Customize Software . Search Engine</string>
|
||||
<string name="SETTING_SEARCH_HEADER_1" translatable="true">supported search engines</string>
|
||||
<string name="SETTING_SEARCH_HEADER_1_INFO" translatable="true">choose default search engine</string>
|
||||
<string name="SETTING_SEARCH_HEADER_2" translatable="true">search customize</string>
|
||||
<string name="SETTING_SEARCH_HEADER_2_INFO" translatable="true">manage how web searches appear</string>
|
||||
<string name="SETTING_SEARCH_HEADER_1_INFO" translatable="true">choose Default search engine</string>
|
||||
<string name="SETTING_SEARCH_HEADER_2" translatable="true">Customize Software . Search Engine</string>
|
||||
<string name="SETTING_SEARCH_HEADER_2_INFO" translatable="true">change how Web Searches appear</string>
|
||||
<string name="SETTING_SEARCH_DEFAULT" translatable="false">default</string>
|
||||
<string name="SETTING_SEARCH_GENESIS" translatable="false">1111</string>
|
||||
<string name="SETTING_SEARCH_DUCK" translatable="false">DuckDuckGo</string>
|
||||
|
@ -54,70 +54,70 @@
|
|||
<string name="SETTING_SEARCH_AMAZON" translatable="false">Bing</string>
|
||||
<string name="SETTING_SEARCH_BING" translatable="false">Wikipedia</string>
|
||||
<string name="SETTING_SEARCH_HISTORY" translatable="true">show browsed web links</string>
|
||||
<string name="SETTING_SEARCH_SUGGESTIONS" translatable="true">show search suggestions</string>
|
||||
<string name="SETTING_SEARCH_SUGGESTIONS" translatable="true">show suggestions during searching</string>
|
||||
<string name="SETTING_SEARCH_HISTORY_INFO" translatable="true">suggestions from browsed web links appear when you type in the search bar</string>
|
||||
<string name="SETTING_SEARCH_SUGGESTION_INFO" translatable="true">focused suggestions appear when you type in the search bar</string>
|
||||
<string name="SETTING_ACCESSIBILITY" translatable="true">accessibility</string>
|
||||
<string name="SETTING_ACCESSIBILITY_INFO" translatable="true">text size, zoom, voice input</string>
|
||||
<string name="SETTING_ACCESSIBILITY_INFO" translatable="true">text size, zoom, input using voice</string>
|
||||
<string name="SETTING_ACCESSIBILITY_HEADER" translatable="true">customize | accessibility</string>
|
||||
<string name="SETTING_CLEAR" translatable="true">clear private data</string>
|
||||
<string name="SETTING_CLEAR_INFO" translatable="true">tabs, browsed web links, bookmark, cookies, cache</string>
|
||||
<string name="SETTING_CLEAR_HEADER" translatable="true">customize | clear Data</string>
|
||||
<string name="SETTING_CLEAR_HEADER" translatable="true">Change System Setting. Clear System Data</string>
|
||||
<string name="SETTING_CLEAR_BUTTON" translatable="true">clear Data</string>
|
||||
<string name="SETTING_CLEAR_OPTION_1" translatable="true">cancel tabs</string>
|
||||
<string name="SETTING_CLEAR_OPTION_2" translatable="true">cancel browsed web links</string>
|
||||
<string name="SETTING_CLEAR_OPTION_3" translatable="true">cancel bookmarks</string>
|
||||
<string name="SETTING_CLEAR_OPTION_4" translatable="true">cancel cache</string>
|
||||
<string name="SETTING_CLEAR_OPTION_5" translatable="true">cancel suggestions</string>
|
||||
<string name="SETTING_CLEAR_OPTION_6" translatable="true">cancel data</string>
|
||||
<string name="SETTING_CLEAR_OPTION_7" translatable="true">cancel session</string>
|
||||
<string name="SETTING_CLEAR_OPTION_8" translatable="true">cancel cookies</string>
|
||||
<string name="SETTING_CLEAR_OPTION_9" translatable="true">cancel customize</string>
|
||||
<string name="SETTING_CLEAR_OPTION_1" translatable="true">delete all tabs</string>
|
||||
<string name="SETTING_CLEAR_OPTION_2" translatable="true">delete browsed web links</string>
|
||||
<string name="SETTING_CLEAR_OPTION_3" translatable="true">delete bookmarks</string>
|
||||
<string name="SETTING_CLEAR_OPTION_4" translatable="true">delete cache</string>
|
||||
<string name="SETTING_CLEAR_OPTION_5" translatable="true">delete suggestions</string>
|
||||
<string name="SETTING_CLEAR_OPTION_6" translatable="true">delete data</string>
|
||||
<string name="SETTING_CLEAR_OPTION_7" translatable="true">delete session</string>
|
||||
<string name="SETTING_CLEAR_OPTION_8" translatable="true">delete cookies</string>
|
||||
<string name="SETTING_CLEAR_OPTION_9" translatable="true">delete customize</string>
|
||||
<string name="SETTING_ACCESSIBILITY_FONT" translatable="true">font scaling</string>
|
||||
<string name="SETTING_ACCESSIBILITY_FONT_INFO" translatable="true">scale web content according to system font size</string>
|
||||
<string name="SETTING_ACCESSIBILITY_ZOOM" translatable="true">enable zoom</string>
|
||||
<string name="SETTING_ACCESSIBILITY_ZOOM_INFO" translatable="true">enable and force zoom for all webpages</string>
|
||||
<string name="SETTING_ACCESSIBILITY_VOICE" translatable="true">voice input</string>
|
||||
<string name="SETTING_ACCESSIBILITY_ZOOM" translatable="true">turn on zoom</string>
|
||||
<string name="SETTING_ACCESSIBILITY_ZOOM_INFO" translatable="true">turn on and force zoom for all webpages</string>
|
||||
<string name="SETTING_ACCESSIBILITY_VOICE" translatable="true">input using voice</string>
|
||||
<string name="SETTING_ACCESSIBILITY_VOICE_INFO" translatable="true">allow voice dictation in the url bar</string>
|
||||
<string name="SETTING_ACCESSIBILITY_FONT_CUSTOM" translatable="true">select custom font scaling</string>
|
||||
<string name="SETTING_ACCESSIBILITY_FONT_CUSTOM_SAMPLE" translatable="true">drag the slider until you can read this comfortably. text should look at least this big after double-tapping on a paragraph</string>
|
||||
<string name="SETTING_ACCESSIBILITY_200_PERCENT" translatable="true">200%</string>
|
||||
<string name="SETTING_INTERACTION" translatable="true">interactions</string>
|
||||
<string name="SETTING_INTERACTION_INFO" translatable="true">change how you interact with the content</string>
|
||||
<string name="SETTING_PRIVACY" translatable="true">privacy</string>
|
||||
<string name="SETTING_PRIVACY_INFO" translatable="true">user tracking, logins, data choices</string>
|
||||
<string name="SETTING_TRACKING" translatable="true">user tracking protection</string>
|
||||
<string name="SETTING_INTERACTION_INFO" translatable="true">change the way of interacting with website content</string>
|
||||
<string name="SETTING_PRIVACY" translatable="true">User Sur</string>
|
||||
<string name="SETTING_PRIVACY_INFO" translatable="true">user survelance, logins, data choices</string>
|
||||
<string name="SETTING_TRACKING" translatable="true">User Surveillance Protection</string>
|
||||
<string name="SETTING_TRACKING_INFO" translatable="true">adblock, trackers, fingerprinting</string>
|
||||
<string name="SETTING_PRIVACY_HEADER" translatable="true">customize | privacy</string>
|
||||
<string name="SETTING_TRACKING_HEADER" translatable="true">customize | tracking protection</string>
|
||||
<string name="SETTING_PRIVACY_HEADER" translatable="true">System Setting . privacy</string>
|
||||
<string name="SETTING_TRACKING_HEADER" translatable="true">System Setting . user survelance protection</string>
|
||||
<string name="SETTING_TRACKING_SUB_HEADER" translatable="true">protect your online identity</string>
|
||||
<string name="SETTING_TRACKING_SUB_HEADER_INFO" translatable="true">keep your identity private. we can protect you from several trackers which follow you online. tracking protection can also be used to block advertisement</string>
|
||||
<string name="SETTING_PRIVACY_DONOT_TRACK" translatable="true">save yourself from user tracking</string>
|
||||
<string name="SETTING_PRIVACY_DONOT_TRACK_INFO" translatable="true">1111 will tell sites that you do not want to be tracked as user</string>
|
||||
<string name="SETTING_PRIVACY_DONOT_TRACK_INFO_SECURITY" translatable="true">tell website not to track user</string>
|
||||
<string name="SETTING_PRIVACY_TRACKING_PROTECTION" translatable="true">tracking protection</string>
|
||||
<string name="SETTING_PRIVACY_TRACKING_PROTECTION_INFO" translatable="true">enable user tracking protection provided by 1111</string>
|
||||
<string name="SETTING_PRIVACY_COOKIES" translatable="true">cookies</string>
|
||||
<string name="SETTING_PRIVACY_COOKIES_INFO" translatable="true">select cookies preferences according to your security needs</string>
|
||||
<string name="SETTING_TRACKING_SUB_HEADER_INFO" translatable="true">keep your identity private. we can protect you from several trackers which follow you online. this System Setting can also be used to block advertisement</string>
|
||||
<string name="SETTING_PRIVACY_DONOT_TRACK" translatable="true">save yourself from user Survelance Protection</string>
|
||||
<string name="SETTING_PRIVACY_DONOT_TRACK_INFO" translatable="true">1111 will tell sites not to track me</string>
|
||||
<string name="SETTING_PRIVACY_DONOT_TRACK_INFO_SECURITY" translatable="true">tell website not to track me</string>
|
||||
<string name="SETTING_PRIVACY_TRACKING_PROTECTION" translatable="true">User Surveillance Protection</string>
|
||||
<string name="SETTING_PRIVACY_TRACKING_PROTECTION_INFO" translatable="true">enable user Survelance Protection provided by 1111</string>
|
||||
<string name="SETTING_PRIVACY_COOKIES" translatable="true">website cookies</string>
|
||||
<string name="SETTING_PRIVACY_COOKIES_INFO" translatable="true">select website cookies preferences according to your security needs</string>
|
||||
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_DATA" translatable="true">clear private data on exit</string>
|
||||
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_DATA_INFO" translatable="true">clear data automatically once the software is closed</string>
|
||||
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_HEADER" translatable="true">private Browsing</string>
|
||||
<string name="SETTING_PRIVACY_CLEAR_PRIVATE_HEADER_INFO" translatable="true">keep your identity safe and use the options below</string>
|
||||
<string name="SETTING_PRIVACY_COOKIES_OPTION1" translatable="true">enabled</string>
|
||||
<string name="SETTING_PRIVACY_COOKIES_OPTION2" translatable="true">enabled, excluding tracking cookies</string>
|
||||
<string name="SETTING_PRIVACY_COOKIES_OPTION2" translatable="true">enabled, excluding website tracking cookies</string>
|
||||
<string name="SETTING_PRIVACY_COOKIES_OPTION3" translatable="true">enabled, excluding 3rd party</string>
|
||||
<string name="SETTING_PRIVACY_COOKIES_OPTION4" translatable="true">disabled</string>
|
||||
|
||||
<string name="SETTING_PRIVACY_TRACKING_OPTION1" translatable="true">disable protection</string>
|
||||
<string name="SETTING_PRIVACY_TRACKING_OPTION1_INFO" translatable="true">allow identity tracking. this might cause your online identity to be stolen</string>
|
||||
<string name="SETTING_PRIVACY_TRACKING_OPTION1_INFO" translatable="true">allow identity Survelance Protection. this might cause your online identity to be stolen</string>
|
||||
<string name="SETTING_PRIVACY_TRACKING_OPTION2" translatable="true">default (recommended)</string>
|
||||
<string name="SETTING_PRIVACY_TRACKING_OPTION2_INFO" translatable="true">block online advertisement and social user tracking. pages will load as default</string>
|
||||
<string name="SETTING_PRIVACY_TRACKING_OPTION2_INFO" translatable="true">block online advertisement and social web user Survelance. pages will load as default</string>
|
||||
<string name="SETTING_PRIVACY_TRACKING_OPTION3" translatable="true">strict policy</string>
|
||||
<string name="SETTING_PRIVACY_TRACKING_OPTION3_INFO" translatable="true">stop all known trackers, pages will load faster but some functionality might not work</string>
|
||||
|
||||
<string name="SETTING_PRIVACY_JAVASCRIPT" translatable="true">javascript</string>
|
||||
<string name="SETTING_PRIVACY_JAVASCRIPT_INFO" translatable="true">disable java scripting for various script attacks</string>
|
||||
<string name="SETTING_ADVANCE_HEADER" translatable="true">customize | complex customizing</string>
|
||||
<string name="SETTING_ADVANCE_HEADER" translatable="true">System Setting . complex System Setting</string>
|
||||
<string name="SETTING_ADVANCE_RESTORE_TAB" translatable="true">restore tabs</string>
|
||||
<string name="SETTING_ADVANCE_RESTORE_TAB_INFO" translatable="true">don\'t restore after exiting browser</string>
|
||||
<string name="SETTING_ADVANCE_TITILE_THEME" translatable="true">toolbar theme</string>
|
||||
|
@ -127,17 +127,17 @@
|
|||
<string name="SETTING_ADVANCE_WEB_FONTS" translatable="true">show web fonts</string>
|
||||
<string name="SETTING_ADVANCE_WEB_FONTS_INFO" translatable="true">download remote fonts when loading a page</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA" translatable="true">allow autoplay</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">allow media to auto start</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_INFO" translatable="true">allow media to start automatically</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER" translatable="true">data saver</string>
|
||||
<string name="SETTING_ADVANCE_TAB" translatable="true">tab</string>
|
||||
<string name="SETTING_ADVANCE_TAB_INFO" translatable="true">change how the tab behaves after restarting the software</string>
|
||||
<string name="SETTING_ADVANCE_TAB_INFO" translatable="true">change the way how the tab behaves after restarting the software</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_SUB_HEADER" translatable="true">media</string>
|
||||
<string name="SETTING_ADVANCE_DATA_SAVER_INFO" translatable="true">change default data saver customize</string>
|
||||
<string name="SETTING_ADVANCE_MEDIA_SUB_HEADER_INFO" translatable="true">change default media customize</string>
|
||||
<string name="SETTING_ADVANCE_IMAGE_OPTION_1" translatable="true">always show images</string>
|
||||
<string name="SETTING_ADVANCE_IMAGE_OPTION_2" translatable="true">only show images when using wifi</string>
|
||||
<string name="SETTING_ADVANCE_IMAGE_OPTION_3" translatable="true">block all images</string>
|
||||
<string name="SETTING_ADVANCE" translatable="true">complex customizing</string>
|
||||
<string name="SETTING_ADVANCE" translatable="true">Advance System Setting</string>
|
||||
<string name="SETTING_ADVANCE_INFO" translatable="true">restore tabs, data saver, developer tools</string>
|
||||
<string name="SETTING_PROXY" translatable="true">9999 condition of proxy</string>
|
||||
<string name="SETTING_PROXY_INFO" translatable="true">check 9999 condition of network</string>
|
||||
|
@ -147,8 +147,8 @@
|
|||
<string name="SETTING_RATEUS_INFO" translatable="true">rate and comment on playstore</string>
|
||||
<string name="SETTING_SHARE" translatable="true">share this app</string>
|
||||
<string name="SETTING_SHARE_INFO" translatable="true">share this software with your friends</string>
|
||||
<string name="SETTING_GENERAL_HEADER" translatable="true">customize | general customize</string>
|
||||
<string name="SETTING_GENERAL" translatable="true">general customization</string>
|
||||
<string name="SETTING_GENERAL_HEADER" translatable="true">System Setting . general customize</string>
|
||||
<string name="SETTING_GENERAL" translatable="true">Default System Setting</string>
|
||||
<string name="SETTING_GENERAL_INFO" translatable="true">homepage, language</string>
|
||||
<string name="SETTING_GENERAL_FULLSCREEN_BROWSING" translatable="true">full-screen browsing</string>
|
||||
<string name="SETTING_GENERAL_FULLSCREEN_BROWSING_INFO" translatable="true">hide the browser toolbar when scrolling down a page</string>
|
||||
|
@ -158,20 +158,20 @@
|
|||
<string name="SETTING_GENERAL_THEME_INFO" translatable="true">choose bright and dark theme</string>
|
||||
<string name="SETTING_GENERAL_THEME_LIGHT" translatable="true">theme bright</string>
|
||||
<string name="SETTING_GENERAL_THEME_DARK" translatable="true">theme Dark</string>
|
||||
<string name="SETTING_GENERAL_INFO_OPTION" translatable="true">change full-screen browsing and language customize</string>
|
||||
<string name="SETTING_GENERAL_INFO_OPTION" translatable="true">change full-screen browsing and language</string>
|
||||
<string name="SETTING_GENERAL_THEME_DEFAULT" translatable="true">system Default</string>
|
||||
<string name="SETTING_GENERAL_HOME" translatable="true">homepage</string>
|
||||
<string name="SETTING_GENERAL_HOME_INFO" translatable="false">about:blank</string>
|
||||
<string name="SETTING_GENERAL_OPEN_URL_IN_NEW_tAB" translatable="true">new tab</string>
|
||||
<string name="SETTING_GENERAL_OPEN_URL_IN_NEW_tAB_INFO" translatable="true">open homepage in new tab</string>
|
||||
<string name="SETTING_CLEAR_CACHE_OPTION_1" translatable="true">cancel all tabs</string>
|
||||
<string name="SETTING_CLEAR_CACHE_OPTION_1" translatable="true">remove all tabs</string>
|
||||
<string name="SETTING_CLEAR_CACHE_OPTION_2" translatable="true">remove browsed web links</string>
|
||||
<string name="SETTING_CLEAR_CACHE_OPTION_3" translatable="true">remove bookmarks</string>
|
||||
<string name="SETTING_CLEAR_CACHE_OPTION_4" translatable="true">remove browsing cache</string>
|
||||
<string name="SETTING_CLEAR_CACHE_OPTION_5" translatable="true">remove suggestions</string>
|
||||
<string name="SETTING_CLEAR_CACHE_OPTION_6" translatable="true">remove site data</string>
|
||||
<string name="SETTING_CLEAR_CACHE_OPTION_7" translatable="true">remove session data</string>
|
||||
<string name="SETTING_CLEAR_CACHE_OPTION_8" translatable="true">remove browsing cookies</string>
|
||||
<string name="SETTING_CLEAR_CACHE_OPTION_8" translatable="true">remove web browsing cookies</string>
|
||||
<string name="SETTING_CLEAR_CACHE_OPTION_9" translatable="true">remove browser customization</string>
|
||||
|
||||
<!-- Alerts -->
|
||||
|
@ -183,7 +183,7 @@
|
|||
|
||||
<string name="ALERT_CREATE_BOOKMARK" translatable="true">bookmark website</string>
|
||||
<string name="ALERT_CREATE_BOOKMARK_INFO" translatable="true">add this page to your bookmarks</string>
|
||||
<string name="ALERT_CLEAR_HISTORY" translatable="true">cancel browsed web links and Data</string>
|
||||
<string name="ALERT_CLEAR_HISTORY" translatable="true">delete browsed web links and Data</string>
|
||||
<string name="ALERT_CLEAR_BOOKMARK" translatable="true">clear bookmark and Data</string>
|
||||
<string name="ALERT_CLEAR_HISTORY_INFO" translatable="true">clearing data will remove browsed web links, cookies, and other browsing data</string>
|
||||
<string name="ALERT_CLEAR_BOOKMARK_INFO" translatable="true">deleting data will deleting bookmarked websites</string>
|
||||
|
@ -194,7 +194,7 @@
|
|||
<string name="ALERT_SECURE" translatable="false">https://</string>
|
||||
<string name="ALERT_SECURE_INFO" translatable="true">connection is secure</string>
|
||||
<string name="ALERT_SECURE_INFO_DETAIL" translatable="true">your information(for example, password or credit card numbers) is private when it is sent to this site</string>
|
||||
<string name="ALERT_SECURE_INFO_SETTINGS" translatable="true">privacy customize</string>
|
||||
<string name="ALERT_SECURE_INFO_SETTINGS" translatable="true">System and User Surveillance Setting</string>
|
||||
<string name="ALERT_REPORT" translatable="true">report</string>
|
||||
<string name="ALERT_REPORT_URL" translatable="true">report website</string>
|
||||
<string name="ALERT_REPORT_URL_INFO" translatable="true">if you think this URL is illegal or disturbing, report it to us, so we can take legal action</string>
|
||||
|
@ -203,11 +203,11 @@
|
|||
<string name="ALERT_RATEUS" translatable="true">rate us</string>
|
||||
<string name="ALERT_RATEUS_INFO" translatable="true">tell others what you think about this app</string>
|
||||
<string name="ALERT_RATE" translatable="true">rate</string>
|
||||
<string name="ALERT_RATEUS_FAILURE" translatable="true">sorry to hear that!</string>
|
||||
<string name="ALERT_RATEUS_FAILURE" translatable="true">we are sorry to hear that!</string>
|
||||
<string name="ALERT_RATEUS_FAILURE_INFO" translatable="true">if you are having difficulty while using this software please reach out to us via email. we will try to solve your problem as soon as possible</string>
|
||||
<string name="ALERT_MAIL" translatable="true">mail</string>
|
||||
<string name="ALERT_BRIDGE_MAIL" translatable="true">request new 2222</string>
|
||||
<string name="ALERT_BRIDGE_MAIL_INFO" translatable="true">select mail below to request a 3333 address. once you get it, copy and paste it into the above box and start the software.</string>
|
||||
<string name="ALERT_BRIDGE_MAIL_INFO" translatable="true">select mail to request a 3333 address. once you recieve it, copy and paste it into the above box and start the software.</string>
|
||||
<string name="ALERT_LANGUAGE_SUPPORT_FAILURE" translatable="true">language not supported</string>
|
||||
<string name="ALERT_LANGUAGE_SUPPORT_FAILURE_INFO" translatable="true">system language is not supported by this software. we are working to include it soon</string>
|
||||
<string name="ALERT_ORBOT_INIT" translatable="true">initializing 11111</string>
|
||||
|
@ -252,8 +252,8 @@
|
|||
<string name="BRIDGE_SETTING" translatable="true">2222 customize</string>
|
||||
<string name="BRIDGE_AUTO" translatable="true">create automatically</string>
|
||||
<string name="BRIDGE_AUTO_INFO" translatable="true">automatically configure 3333 customize</string>
|
||||
<string name="BRIDGE_MANUAL" translatable="true">provide a 3333 you know</string>
|
||||
<string name="BRIDGE_PORT_HINT" translatable="false">paste custom 3333</string>
|
||||
<string name="BRIDGE_MANUAL" translatable="true">provide a 3333 that you know</string>
|
||||
<string name="BRIDGE_PORT_HINT" translatable="true">paste custom 3333</string>
|
||||
<string name="BRIDGE_HEADER" translatable="true">proxy customize | 2222</string>
|
||||
<string name="BRIDGE_DESC" translatable="true">4444 are unlisted 6666 relays that make it more difficult to block connections into the 6666 network. because of how some countries try to block 6666, certain 5555 work in some countries but not others</string>
|
||||
<string name="BRIDGE_TITLE" translatable="true">select default 3333</string>
|
||||
|
@ -263,7 +263,7 @@
|
|||
|
||||
<!-- 11111 Log -->
|
||||
<string name="ORBOT_LOG" translatable="true">proxy logs</string>
|
||||
<string name="ORBOT_LOG_HEADER" translatable="true">logs info</string>
|
||||
<string name="ORBOT_LOG_HEADER" translatable="true">System Log info</string>
|
||||
<string name="ORBOT_LOG_INFO" translatable="true">if you are facing connectivity issue while starting 1111 please copy the following code and find issue online or send it to us, so we can try to help you out </string>
|
||||
|
||||
<!-- Popup Menu -->
|
||||
|
@ -274,7 +274,7 @@
|
|||
<string name="HOME_MENU_LANGUAGE" translatable="true">language</string>
|
||||
<string name="HOME_MENU_DOWNLOAD" translatable="true">downloads</string>
|
||||
<string name="HOME_MENU_HISTORY" translatable="true">browsed web links</string>
|
||||
<string name="HOME_MENU_SETTING" translatable="true">customize</string>
|
||||
<string name="HOME_MENU_SETTING" translatable="true">System Setting</string>
|
||||
<string name="HOME_MENU_DESKTOP" translatable="true">desktop site</string>
|
||||
<string name="HOME_MENU_BOOKMARK" translatable="true">save this page</string>
|
||||
<string name="HOME_MENU_OPEN_BOOKMARK" translatable="true">bookmarks</string>
|
||||
|
@ -287,7 +287,7 @@
|
|||
<!-- Tab View -->
|
||||
<string name="TAB_MENU_OPEN_TAB" translatable="true">new tabs</string>
|
||||
<string name="TAB_MENU_CLOSE_TAB" translatable="true">close all tabs</string>
|
||||
<string name="TAB_MENU_SETTINGS" translatable="true">customize</string>
|
||||
<string name="TAB_MENU_SETTINGS" translatable="true">System Setting</string>
|
||||
<string name="TAB_LIST_SELECT" translatable="true">select tabs</string>
|
||||
|
||||
<!-- Shared Recycler View -->
|
||||
|
@ -301,12 +301,12 @@
|
|||
|
||||
<!-- History Popup Menu -->
|
||||
<string name="HISTORY_TITLE" translatable="true">browsed web links</string>
|
||||
<string name="HISTORY_CLEAR" translatable="true">clear</string>
|
||||
<string name="HISTORY_CLEAR" translatable="true">remove this</string>
|
||||
<string name="HISTORY_SEARCH_HINT" translatable="true">search ...</string>
|
||||
|
||||
<!-- BOOKMARK Popup Menu -->
|
||||
<string name="BOOKMARK_TITLE" translatable="true">bookmark</string>
|
||||
<string name="BOOKMARK_CLEAR" translatable="true">clear</string>
|
||||
<string name="BOOKMARK_CLEAR" translatable="true">remove this</string>
|
||||
<string name="BOOKMARK_SEARCH_HINT" translatable="true">search ...</string>
|
||||
|
||||
<!-- Help -->
|
||||
|
@ -328,9 +328,9 @@
|
|||
|
||||
<!-- Orbot Settings -->
|
||||
<string name="ORBOT_SETTING_WARNING" translatable="true">⚠️ warning</string>
|
||||
<string name="ORBOT_SETTING_CUSTOM_BRIDGE" translatable="true">customize 4444</string>
|
||||
<string name="ORBOT_SETTING_BRIDGE_ENABLE" translatable="true">enable 4444</string>
|
||||
<string name="ORBOT_SETTING_ENABLE_VPN" translatable="true">enable 7777 serivces</string>
|
||||
<string name="ORBOT_SETTING_CUSTOM_BRIDGE" translatable="true">customize Gateway</string>
|
||||
<string name="ORBOT_SETTING_BRIDGE_ENABLE" translatable="true">enable Gateway</string>
|
||||
<string name="ORBOT_SETTING_ENABLE_VPN" translatable="true">enable Gateway serivces</string>
|
||||
<string name="ORBOT_SETTING_GATEWAY_INFO" translatable="true">enable 2222 11113</string>
|
||||
<string name="ORBOT_SETTING_GATEWAY_BUTTON" translatable="true">enable 11113</string>
|
||||
|
||||
|
@ -338,18 +338,18 @@
|
|||
<string name="PROXY_STATUS_HEADER" translatable="true">condition of proxy</string>
|
||||
<string name="ORBOT_PROXY_STATUS_INFO" translatable="true">current condition of 11112 proxy</string>
|
||||
<string name="PROXY_SUB_HEADER1" translatable="true">11111 condition of proxy</string>
|
||||
<string name="PROXY_SUB_HEADER2" translatable="true">9999 & 4444 status</string>
|
||||
<string name="PROXY_VPN_STATUS" translatable="true">7777 condition of connectivity</string>
|
||||
<string name="PROXY_SUB_HEADER2" translatable="true">9999 & Gateway status</string>
|
||||
<string name="PROXY_VPN_STATUS" translatable="true">Gateway condition of connectivity</string>
|
||||
<string name="PROXY_BRIDGE_STATUS" translatable="true">2222 condition of proxy</string>
|
||||
<string name="PROXY_SUB_HEADER3" translatable="true">info | change customize</string>
|
||||
<string name="PROXY_CONNECTIVITY_SETTING_INFO" translatable="true">you can change proxy by restarting the software and going to proxy manager. it can be opened by pressing on gear icon at bottom</string>
|
||||
<string name="PROXY_SUB_HEADER3" translatable="true">info | change System Setting</string>
|
||||
<string name="PROXY_CONNECTIVITY_SETTING_INFO" translatable="true">you can change proxy by restarting the software and going to proxy manager. it can be opened by clicking on a gear icon at bottom</string>
|
||||
|
||||
<!-- Orbot View -->
|
||||
<string name="ORBOT_HEADER" translatable="true">proxy customize</string>
|
||||
<string name="ORBOT_DESCRIPTION" translatable="true">we connect you to the 6666 network run by thousands of volunteers around the world! Can these options help you</string>
|
||||
<string name="ORBOT_TITLE" translatable="true">internet is censored here (bypass firewall)</string>
|
||||
<string name="ORBOT_OPTION_DESCRIPTION" translatable="true">bypass firewall</string>
|
||||
<string name="ORBOT_BRIDGE_WARNING" translatable="true">4444 causes internet to run very slow. use them only if internet is censored in your country or Tor network is blocked</string>
|
||||
<string name="ORBOT_BRIDGE_WARNING" translatable="true">Gateway causes internet to run very slow. use them only if internet is censored in your country or 6666 network is blocked</string>
|
||||
|
||||
<!-- Notification Menu -->
|
||||
<string name="NOTIFICATION_DEFAULT_LABEL" translatable="true">default.jpg</string>
|
||||
|
@ -358,8 +358,8 @@
|
|||
<!-- Home View -->
|
||||
<string name="HOME_TAB_TEXT" translatable="true">1</string>
|
||||
<string name="HOME_CONNECT" translatable="false">connect</string>
|
||||
<string name="HOME_LOADING" translatable="true">1111 is paused at the moment</string>
|
||||
<string name="HOME_LOADING_STATIC" translatable="true">~ 1111 on standby at the moment</string>
|
||||
<string name="HOME_LOADING" translatable="false">1111 is paused at the moment</string>
|
||||
<string name="HOME_LOADING_STATIC" translatable="false">~ 1111 on standby at the moment</string>
|
||||
<string name="HOME_TAB_EMPTY" translatable="true">open tabs will show here</string>
|
||||
|
||||
<!-- Landing Page -->
|
||||
|
@ -371,11 +371,11 @@
|
|||
<string name="LANDING_HELLO" translatable="true">"hello"</string>
|
||||
<string name="LANDING_WELCOME" translatable="true">"welcome to 6666 on mobile."</string>
|
||||
<string name="LANDING_BROWSE_INFO" translatable="true">"browse the internet how you expect you should."</string>
|
||||
<string name="LANDING_NO_TRACKING" translatable="true">"no tracking. no censorship."</string>
|
||||
<string name="LANDING_NO_TRACKING" translatable="true">"no User Surveillance Protection. no censorship."</string>
|
||||
|
||||
<!-- Error Page -->
|
||||
<string name="ERROR_M1" translatable="true">this site is not reachable</string>
|
||||
<string name="ERROR_M2" translatable="true">an error occurred during a connection</string>
|
||||
<string name="ERROR_M2" translatable="true">an error occurred while connecting with website</string>
|
||||
<string name="ERROR_M3" translatable="true">the page you are trying to view cannot be shown because the authenticity of the received data could not be verified</string>
|
||||
<string name="ERROR_M4" translatable="true">the page is currently not working due to some reason</string>
|
||||
<string name="ERROR_M5" translatable="true">please contact the website owners to inform them of this problem.</string>
|
||||
|
@ -402,12 +402,6 @@
|
|||
<item>145 Percent</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="search_engines" translatable="true">
|
||||
<item translatable="true">Hidden Web</item>
|
||||
<item translatable="true">Google</item>
|
||||
<item translatable="true">Duck Duck Go</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="ARRAY_DEFAULT_BOOLEAN" translatable="true">
|
||||
<item>Enabled</item>
|
||||
<item>Disabled</item>
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/landing_ease_blue"/>
|
||||
<foreground android:drawable="@drawable/splashlogoclip"/>
|
||||
</adaptive-icon>
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/landing_ease_blue"/>
|
||||
<foreground android:drawable="@drawable/splashlogoclip"/>
|
||||
</adaptive-icon>
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 5.8 KiB |