Merge branch 'material-components' into 'master'
feat: rebase app themes to material themes Closes #2145 See merge request fdroid/fdroidclient!963
This commit is contained in:
commit
9d5af90c61
@ -28,7 +28,7 @@ android {
|
||||
versionName getVersionName()
|
||||
|
||||
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
||||
minSdkVersion 14
|
||||
minSdkVersion 22
|
||||
//noinspection ExpiredTargetSdkVersion
|
||||
targetSdkVersion 25
|
||||
/*
|
||||
|
@ -1,13 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<PreferenceScreen android:title="@string/about_title">
|
||||
<intent
|
||||
android:action="android.intent.action.MAIN"
|
||||
android:targetPackage="@string/applicationId"
|
||||
android:targetClass="org.fdroid.fdroid.AboutActivity"/>
|
||||
</PreferenceScreen>
|
||||
<PreferenceScreen android:title="@string/about_title"
|
||||
android:key="pref_about" />
|
||||
|
||||
<PreferenceCategory android:title="@string/preference_category__my_apps">
|
||||
<PreferenceScreen android:title="@string/preference_manage_installed_apps">
|
||||
@ -47,7 +42,7 @@
|
||||
android:title="@string/over_data"
|
||||
android:defaultValue="@integer/defaultOverData"
|
||||
android:layout="@layout/preference_seekbar"/>
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:title="@string/update_auto_download"
|
||||
android:summary="@string/update_auto_download_summary"
|
||||
android:key="updateAutoDownload"/>
|
||||
@ -56,7 +51,7 @@
|
||||
android:title="@string/update_interval"
|
||||
android:defaultValue="@integer/defaultUpdateInterval"
|
||||
android:layout="@layout/preference_seekbar"/>
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:title="@string/notify"
|
||||
android:defaultValue="true"
|
||||
android:key="updateNotify"/>
|
||||
@ -77,26 +72,26 @@
|
||||
|
||||
<PreferenceCategory android:title="@string/appcompatibility"
|
||||
android:key="pref_category_appcompatibility">
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:title="@string/show_incompat_versions"
|
||||
android:defaultValue="false"
|
||||
android:key="incompatibleVersions"/>
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:title="@string/show_anti_feature_apps"
|
||||
android:defaultValue="false"
|
||||
android:key="showAntiFeatureApps"/>
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:title="@string/force_touch_apps"
|
||||
android:defaultValue="false"
|
||||
android:key="ignoreTouchscreen"/>
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/proxy">
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:key="useTor"
|
||||
android:summary="@string/useTorSummary"
|
||||
android:title="@string/useTor"/>
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="enableProxy"
|
||||
android:title="@string/enable_proxy_title"
|
||||
@ -116,12 +111,12 @@
|
||||
<PreferenceCategory
|
||||
android:key="pref_category_privacy"
|
||||
android:title="@string/privacy">
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:key="promptToSendCrashReports"
|
||||
android:title="@string/prompt_to_send_crash_reports"
|
||||
android:summary="@string/prompt_to_send_crash_reports_summary"
|
||||
android:defaultValue="true"/>
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="preventScreenshots"
|
||||
android:summary="@string/preventScreenshots_summary"
|
||||
@ -137,7 +132,7 @@
|
||||
android:defaultValue="86400000"
|
||||
android:entries="@array/keepCacheNames"
|
||||
android:entryValues="@array/keepCacheValues"/>
|
||||
<SwitchPreference
|
||||
<SwitchPreferenceCompat
|
||||
android:title="@string/expert"
|
||||
android:defaultValue="false"
|
||||
android:key="expert"/>
|
||||
|
@ -56,7 +56,6 @@
|
||||
android:name=".nearby.SwapWorkflowActivity"
|
||||
android:parentActivityName=".views.main.MainActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/SwapTheme.Wizard"
|
||||
android:screenOrientation="portrait"
|
||||
android:configChanges="orientation|keyboardHidden">
|
||||
<meta-data
|
||||
@ -159,8 +158,7 @@
|
||||
android:name=".panic.CalculatorActivity"
|
||||
android:enabled="false"
|
||||
android:icon="@mipmap/ic_calculator_launcher"
|
||||
android:label="@string/hiding_calculator"
|
||||
android:theme="@style/AppThemeLight">
|
||||
android:label="@string/hiding_calculator">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
|
||||
|
@ -200,8 +200,6 @@ public class SelectAppsView extends SwapView implements LoaderManager.LoaderCall
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
updateCheckedIndicatorView(view, listView.isItemChecked(listPosition));
|
||||
}
|
||||
|
||||
public void updateCheckedIndicatorView(int position, boolean checked) {
|
||||
@ -210,24 +208,6 @@ public class SelectAppsView extends SwapView implements LoaderManager.LoaderCall
|
||||
|
||||
if (position >= firstListItemPosition && position <= lastListItemPosition) {
|
||||
final int childIndex = position - firstListItemPosition;
|
||||
updateCheckedIndicatorView(listView.getChildAt(childIndex), checked);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateCheckedIndicatorView(View view, boolean checked) {
|
||||
ImageView imageView = (ImageView) view.findViewById(R.id.checked);
|
||||
if (imageView != null) {
|
||||
int resource;
|
||||
int colour;
|
||||
if (checked) {
|
||||
resource = R.drawable.ic_check_circle;
|
||||
colour = ContextCompat.getColor(getContext(), R.color.swap_bright_blue);
|
||||
} else {
|
||||
resource = R.drawable.ic_add_circle_outline;
|
||||
colour = 0xFFD0D0D4;
|
||||
}
|
||||
imageView.setImageDrawable(ContextCompat.getDrawable(getContext(), resource));
|
||||
imageView.setColorFilter(colour, PorterDuff.Mode.MULTIPLY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -42,10 +42,10 @@ import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.SearchView;
|
||||
import androidx.appcompat.widget.SwitchCompat;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
|
||||
import com.google.android.material.appbar.MaterialToolbar;
|
||||
import com.google.zxing.integration.android.IntentIntegrator;
|
||||
import com.google.zxing.integration.android.IntentResult;
|
||||
|
||||
@ -106,7 +106,7 @@ public class SwapWorkflowActivity extends AppCompatActivity {
|
||||
private static final int REQUEST_WRITE_SETTINGS_PERMISSION = 5;
|
||||
private static final int STEP_INTRO = 1; // TODO remove this special case, only use layoutResIds
|
||||
|
||||
private Toolbar toolbar;
|
||||
private MaterialToolbar toolbar;
|
||||
private SwapView currentView;
|
||||
private boolean hasPreparedLocalRepo;
|
||||
private boolean newIntent;
|
||||
@ -200,7 +200,11 @@ public class SwapWorkflowActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
((FDroidApp) getApplication()).setSecureWindow(this);
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.setSecureWindow(this);
|
||||
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
currentView = new SwapView(this); // dummy placeholder to avoid NullPointerExceptions;
|
||||
@ -213,10 +217,8 @@ public class SwapWorkflowActivity extends AppCompatActivity {
|
||||
|
||||
setContentView(R.layout.swap_activity);
|
||||
|
||||
toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
toolbar.setTitleTextAppearance(getApplicationContext(), R.style.SwapTheme_Wizard_Text_Toolbar);
|
||||
toolbar = findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
container = (ViewGroup) findViewById(R.id.container);
|
||||
|
||||
@ -494,7 +496,6 @@ public class SwapWorkflowActivity extends AppCompatActivity {
|
||||
currentView.setLayoutResId(viewRes);
|
||||
currentSwapViewLayoutRes = viewRes;
|
||||
|
||||
toolbar.setBackgroundColor(currentView.getToolbarColour());
|
||||
toolbar.setTitle(currentView.getToolbarTitle());
|
||||
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
|
@ -3,11 +3,14 @@ package org.fdroid.fdroid.panic;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.material.appbar.MaterialToolbar;
|
||||
|
||||
import org.fdroid.fdroid.FDroidApp;
|
||||
import org.fdroid.fdroid.R;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
@ -35,10 +38,13 @@ public class CalculatorActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_calculator);
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
MaterialToolbar toolbar = findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
|
||||
textView = (TextView) findViewById(R.id.textView);
|
||||
|
@ -1,10 +1,12 @@
|
||||
package org.fdroid.fdroid.panic;
|
||||
|
||||
import android.os.Bundle;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.google.android.material.appbar.MaterialToolbar;
|
||||
|
||||
import org.fdroid.fdroid.FDroidApp;
|
||||
import org.fdroid.fdroid.R;
|
||||
|
||||
@ -12,26 +14,19 @@ public class PanicPreferencesActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle bundle) {
|
||||
((FDroidApp) getApplication()).applyTheme(this);
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
super.onCreate(bundle);
|
||||
setContentView(R.layout.activity_panic_settings);
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
ActionBar ab = getSupportActionBar();
|
||||
if (ab != null) {
|
||||
ab.setDisplayShowHomeEnabled(true);
|
||||
ab.setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
MaterialToolbar toolbar = findViewById(R.id.toolbar);
|
||||
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == android.R.id.home) {
|
||||
public void onClick(View view) {
|
||||
// Handle navigation icon press
|
||||
onBackPressed();
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -29,14 +29,14 @@ import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.loader.content.CursorLoader;
|
||||
import androidx.loader.content.Loader;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.appbar.MaterialToolbar;
|
||||
|
||||
import org.fdroid.fdroid.FDroidApp;
|
||||
import org.fdroid.fdroid.Preferences;
|
||||
import org.fdroid.fdroid.R;
|
||||
@ -54,13 +54,14 @@ public class SelectInstalledAppsActivity extends AppCompatActivity implements Lo
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
((FDroidApp) getApplication()).applyTheme(this);
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setContentView(R.layout.installed_apps_layout);
|
||||
|
||||
Toolbar toolbar = findViewById(R.id.toolbar);
|
||||
MaterialToolbar toolbar = findViewById(R.id.toolbar);
|
||||
toolbar.setTitle(getString(R.string.panic_add_apps_to_uninstall));
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
@ -1,12 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
tools:ignore="VectorRaster">
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM9.29,16.29L5.7,12.7c-0.39,-0.39 -0.39,-1.02 0,-1.41 0.39,-0.39 1.02,-0.39 1.41,0L10,14.17l6.88,-6.88c0.39,-0.39 1.02,-0.39 1.41,0 0.39,0.39 0.39,1.02 0,1.41l-7.59,7.59c-0.38,0.39 -1.02,0.39 -1.41,0z"/>
|
||||
</vector>
|
@ -1,79 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2010 The Android Open Source Project
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<RelativeLayout 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="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="?attr/listPreferredItemHeight"
|
||||
android:paddingBottom="2dip"
|
||||
android:paddingTop="2dip">
|
||||
|
||||
<ImageView
|
||||
android:id="@android:id/icon"
|
||||
android:layout_width="48dip"
|
||||
android:layout_height="48dip"
|
||||
android:layout_marginLeft="?attr/listPreferredItemPaddingLeft"
|
||||
android:layout_marginStart="?attr/listPreferredItemPaddingStart"
|
||||
android:layout_marginTop="6dip"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
tools:src="@drawable/ic_launcher"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
<!-- Suppress InconsistentLayout because the lower API levels use a checkbox rather than this -->
|
||||
<ImageView
|
||||
android:id="@+id/checked"
|
||||
android:layout_width="32dip"
|
||||
android:layout_height="32dip"
|
||||
android:layout_marginRight="?attr/listPreferredItemPaddingLeft"
|
||||
android:layout_marginEnd="?attr/listPreferredItemPaddingStart"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_centerVertical="true"
|
||||
tools:suppress="InconsistentLayout"
|
||||
app:srcCompat="@drawable/ic_add_circle_outline" />
|
||||
|
||||
<TwoLineListItem
|
||||
android:layout_toRightOf="@android:id/icon"
|
||||
android:layout_toEndOf="@android:id/icon"
|
||||
android:layout_toLeftOf="@id/checked"
|
||||
android:layout_toStartOf="@id/checked"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:mode="twoLine" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/application_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="?attr/listPreferredItemPaddingLeft"
|
||||
android:layout_marginStart="?attr/listPreferredItemPaddingStart"
|
||||
android:layout_marginTop="6dip"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
tools:text="F-Droid" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/package_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignStart="@+id/application_label"
|
||||
android:layout_alignLeft="@+id/application_label"
|
||||
android:layout_below="@+id/application_label"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
tools:text="Application Manager" />
|
||||
</TwoLineListItem>
|
||||
|
||||
</RelativeLayout>
|
@ -1,71 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) 2010 The Android Open Source Project
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<RelativeLayout 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="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="?attr/listPreferredItemHeight"
|
||||
android:paddingBottom="2dip"
|
||||
android:paddingTop="2dip">
|
||||
|
||||
<ImageView
|
||||
android:id="@android:id/icon"
|
||||
android:layout_width="48dip"
|
||||
android:layout_height="48dip"
|
||||
android:layout_marginStart="?attr/listPreferredItemPaddingStart"
|
||||
android:layout_marginTop="6dip"
|
||||
android:layout_alignParentStart="true"
|
||||
tools:src="@drawable/ic_launcher"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
<!-- Suppress InconsistentLayout because the lower API levels use a checkbox rather than this -->
|
||||
<ImageView
|
||||
android:id="@+id/checked"
|
||||
android:layout_width="32dip"
|
||||
android:layout_height="32dip"
|
||||
android:layout_marginEnd="?attr/listPreferredItemPaddingStart"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_centerVertical="true"
|
||||
tools:suppress="InconsistentLayout"
|
||||
app:srcCompat="@drawable/ic_add_circle_outline" />
|
||||
|
||||
<TwoLineListItem
|
||||
android:layout_toEndOf="@android:id/icon"
|
||||
android:layout_toStartOf="@id/checked"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:mode="twoLine" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/application_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="?attr/listPreferredItemPaddingStart"
|
||||
android:layout_marginTop="6dip"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
tools:text="F-Droid" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/package_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignStart="@+id/application_label"
|
||||
android:layout_below="@+id/application_label"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
tools:text="Application Manager" />
|
||||
</TwoLineListItem>
|
||||
|
||||
</RelativeLayout>
|
@ -1,20 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
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="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".panic.CalculatorActivity">
|
||||
tools:context=".panic.CalculatorActivity"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/topAppBarLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/colorPrimary"
|
||||
android:fitsSystemWindows="true"
|
||||
app:liftOnScroll="true"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:theme="?attr/actionBarTheme" />
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:navigationIcon="@drawable/ic_back"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.PrimarySurface" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView"
|
||||
@ -32,7 +43,7 @@
|
||||
app:layout_constraintBottom_toTopOf="@+id/ce"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/toolbar"
|
||||
app:layout_constraintTop_toBottomOf="@+id/topAppBarLayout"
|
||||
tools:text="1337+42" />
|
||||
|
||||
<Button
|
||||
|
@ -1,18 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
android:orientation="vertical"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/colorPrimary"
|
||||
app:theme="?attr/actionBarTheme" />
|
||||
android:fitsSystemWindows="true"
|
||||
app:liftOnScroll="true">
|
||||
|
||||
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:title="@string/panic_settings"
|
||||
app:navigationIcon="@drawable/ic_back"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.PrimarySurface" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/fragment_container"
|
||||
class="org.fdroid.fdroid.panic.PanicPreferencesFragment"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -5,7 +5,8 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
android:layout_width="match_parent"
|
||||
|
@ -28,7 +28,6 @@
|
||||
android:layout_marginStart="?attr/listPreferredItemPaddingStart"
|
||||
android:layout_marginTop="6dip"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
tools:src="@drawable/ic_launcher"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
@ -43,9 +42,7 @@
|
||||
android:layout_centerVertical="true" />
|
||||
|
||||
<TwoLineListItem
|
||||
android:layout_toRightOf="@android:id/icon"
|
||||
android:layout_toEndOf="@android:id/icon"
|
||||
android:layout_toLeftOf="@id/checkbox"
|
||||
android:layout_toStartOf="@id/checkbox"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
@ -66,7 +63,6 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignStart="@+id/application_label"
|
||||
android:layout_alignLeft="@+id/application_label"
|
||||
android:layout_below="@+id/application_label"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
tools:text="Application Manager" />
|
||||
|
@ -1,20 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="vertical"
|
||||
android:fitsSystemWindows="true">
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:titleTextAppearance="@style/SwapTheme.Wizard.Text"
|
||||
titleTextAppearance="@style/SwapTheme.Wizard.Text"
|
||||
android:minHeight="?attr/actionBarSize"
|
||||
android:background="?attr/colorPrimary"
|
||||
tools:ignore="UnusedAttribute"/>
|
||||
android:layout_height="wrap_content"
|
||||
android:fitsSystemWindows="true"
|
||||
app:liftOnScroll="true">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:navigationIcon="@drawable/ic_back"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.PrimarySurface" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/container"
|
||||
|
@ -3,13 +3,9 @@
|
||||
|
||||
<style name="SwapTheme.Wizard" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="colorButtonNormal">@color/swap_bright_blue</item>
|
||||
<item name="actionButtonStyle">@style/SwapTheme.Wizard.ActionButton</item>
|
||||
<item name="actionBarStyle">@style/Widget.AppCompat.ActionBar.Solid</item>
|
||||
</style>
|
||||
|
||||
<style name="SwapTheme.StartSwap" parent="AppThemeLight">
|
||||
<item name="background">@android:color/white</item>
|
||||
</style>
|
||||
<style name="SwapTheme.StartSwap" parent="Theme.App"/>
|
||||
|
||||
<style name="SwapTheme.StartSwap.Text" parent="@style/SwapTheme.StartSwap">
|
||||
</style>
|
||||
@ -17,10 +13,10 @@
|
||||
<style name="SwapTheme.BluetoothDeviceList" parent="@style/SwapTheme.Wizard">
|
||||
</style>
|
||||
|
||||
<style name="SwapTheme.AppList" parent="AppThemeLight">
|
||||
<style name="SwapTheme.AppList" parent="Base.Theme.App">
|
||||
</style>
|
||||
|
||||
<style name="SwapTheme.AppList.ListItem" parent="AppThemeLight">
|
||||
<style name="SwapTheme.AppList.ListItem" parent="Theme.App">
|
||||
</style>
|
||||
|
||||
<style name="SwapTheme.AppList.SwapSuccessBase">
|
||||
|
@ -61,7 +61,7 @@
|
||||
android:allowBackup="true"
|
||||
android:fullBackupContent="@xml/backup_rules"
|
||||
android:networkSecurityConfig="@xml/network_security_config"
|
||||
android:theme="@style/AppThemeLight"
|
||||
android:theme="@style/Theme.App"
|
||||
android:supportsRtl="true">
|
||||
|
||||
<provider
|
||||
@ -131,7 +131,6 @@
|
||||
<activity
|
||||
android:name=".privileged.views.InstallConfirmActivity"
|
||||
android:label="@string/menu_install"
|
||||
android:theme="@style/MinWithDialogBaseThemeLight"
|
||||
android:excludeFromRecents="true"
|
||||
android:parentActivityName=".views.main.MainActivity"
|
||||
android:configChanges="layoutDirection|locale">
|
||||
@ -141,8 +140,7 @@
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".privileged.views.UninstallDialogActivity"
|
||||
android:excludeFromRecents="true"
|
||||
android:theme="@style/AppThemeTransparent"/>
|
||||
android:excludeFromRecents="true" />
|
||||
<activity
|
||||
android:name=".views.ManageReposActivity"
|
||||
android:label="@string/menu_manage"
|
||||
@ -180,7 +178,6 @@
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".acra.CrashReportActivity"
|
||||
android:theme="@style/AppThemeDark"
|
||||
android:process=":error_report"
|
||||
android:launchMode="singleInstance"
|
||||
android:excludeFromRecents="true"
|
||||
@ -546,7 +543,7 @@
|
||||
android:value=".views.main.MainActivity"/>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".AboutActivity" android:theme="@style/Theme.AppCompat.Light.Dialog"/>
|
||||
<activity android:name=".AboutActivity" />
|
||||
<activity android:name=".installer.FileInstallerActivity" android:theme="@style/AppThemeTransparent"/>
|
||||
|
||||
</application>
|
||||
|
@ -10,9 +10,6 @@ public class AboutActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyDialogTheme(this);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setContentView(R.layout.about);
|
||||
|
@ -24,7 +24,6 @@
|
||||
package org.fdroid.fdroid;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.ActivityManager.RunningAppProcessInfo;
|
||||
import android.app.Application;
|
||||
@ -48,8 +47,11 @@ import android.view.WindowManager;
|
||||
import android.widget.Toast;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.collection.LongSparseArray;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.nostra13.universalimageloader.cache.disc.DiskCache;
|
||||
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
|
||||
import com.nostra13.universalimageloader.cache.disc.impl.ext.LruDiskCache;
|
||||
@ -152,30 +154,46 @@ public class FDroidApp extends Application implements androidx.work.Configuratio
|
||||
|
||||
private static Theme curTheme = Theme.light;
|
||||
|
||||
public void reloadTheme() {
|
||||
/**
|
||||
* Apply pure black background in dark theme setting. Must be called in every activity's
|
||||
* {@link AppCompatActivity#onCreate()}, before super.onCreate().
|
||||
* @param activity The activity to apply the setting.
|
||||
*/
|
||||
public void applyPureBlackBackgroundInDarkTheme(AppCompatActivity activity) {
|
||||
final boolean isPureBlack = Preferences.get().isPureBlack();
|
||||
if (isPureBlack) {
|
||||
activity.setTheme(R.style.Theme_App_Black);
|
||||
}
|
||||
}
|
||||
|
||||
public void applyTheme() {
|
||||
curTheme = Preferences.get().getTheme();
|
||||
}
|
||||
|
||||
public void applyTheme(AppCompatActivity activity) {
|
||||
activity.setTheme(getCurThemeResId());
|
||||
setSecureWindow(activity);
|
||||
}
|
||||
|
||||
public static int getCurThemeResId() {
|
||||
switch (curTheme) {
|
||||
case light:
|
||||
return R.style.AppThemeLight;
|
||||
case dark:
|
||||
return R.style.AppThemeDark;
|
||||
case night:
|
||||
return R.style.AppThemeNight;
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
|
||||
break;
|
||||
case light:
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
|
||||
break;
|
||||
default:
|
||||
return R.style.AppThemeLight;
|
||||
// `Set by Battery Saver` for Q above (inclusive), `Use system default` for Q below
|
||||
// https://medium.com/androiddevelopers/appcompat-v23-2-daynight-d10f90c83e94
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY);
|
||||
} else {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: ResId no longer exists.
|
||||
public static int getCurThemeResId() {
|
||||
return R.style.Theme_App;
|
||||
}
|
||||
|
||||
public static boolean isAppThemeLight() {
|
||||
return curTheme == Theme.light;
|
||||
return AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_NO;
|
||||
}
|
||||
|
||||
public void applyDialogTheme(AppCompatActivity activity) {
|
||||
@ -191,35 +209,13 @@ public class FDroidApp extends Application implements androidx.work.Configuratio
|
||||
|
||||
private static int getCurDialogThemeResId() {
|
||||
switch (curTheme) {
|
||||
case light:
|
||||
return R.style.MinWithDialogBaseThemeLight;
|
||||
case dark:
|
||||
return R.style.MinWithDialogBaseThemeDark;
|
||||
case night:
|
||||
case dark: case night:
|
||||
return R.style.MinWithDialogBaseThemeDark;
|
||||
default:
|
||||
return R.style.MinWithDialogBaseThemeLight;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Force reload the {@link AppCompatActivity to make theme changes take effect.}
|
||||
* Same as {@link Languages#forceChangeLanguage(AppCompatActivity)}
|
||||
*
|
||||
* @param activity the {@code AppCompatActivity} to force reload
|
||||
*/
|
||||
public static void forceChangeTheme(AppCompatActivity activity) {
|
||||
Intent intent = activity.getIntent();
|
||||
if (intent == null) { // when launched as LAUNCHER
|
||||
return;
|
||||
}
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
|
||||
activity.finish();
|
||||
activity.overridePendingTransition(0, 0);
|
||||
activity.startActivity(intent);
|
||||
activity.overridePendingTransition(0, 0);
|
||||
}
|
||||
|
||||
public static void enableBouncyCastle() {
|
||||
Security.addProvider(BOUNCYCASTLE_PROVIDER);
|
||||
}
|
||||
@ -393,7 +389,8 @@ public class FDroidApp extends Application implements androidx.work.Configuratio
|
||||
|
||||
PRNGFixes.apply();
|
||||
|
||||
curTheme = preferences.getTheme();
|
||||
applyTheme();
|
||||
|
||||
configureProxy(preferences);
|
||||
|
||||
|
||||
@ -650,7 +647,7 @@ public class FDroidApp extends Application implements androidx.work.Configuratio
|
||||
|
||||
/**
|
||||
* Put proxy settings (or Tor settings) globally into effect based on whats configured in Preferences.
|
||||
* <p>
|
||||
*
|
||||
* Must be called on App startup and after every proxy configuration change.
|
||||
*/
|
||||
public static void configureProxy(Preferences preferences) {
|
||||
|
@ -39,8 +39,9 @@ public class NfcNotEnabledActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
((FDroidApp) getApplication()).applyTheme(this);
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
final Intent intent = new Intent();
|
||||
|
@ -87,6 +87,7 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh
|
||||
public static final String PREF_AUTO_DOWNLOAD_INSTALL_UPDATES = "updateAutoDownload";
|
||||
public static final String PREF_UPDATE_NOTIFICATION_ENABLED = "updateNotify";
|
||||
public static final String PREF_THEME = "theme";
|
||||
public static final String PREF_USE_PURE_BLACK_DARK_THEME = "usePureBlackDarkTheme";
|
||||
public static final String PREF_SHOW_INCOMPAT_VERSIONS = "incompatibleVersions";
|
||||
public static final String PREF_SHOW_ANTI_FEATURE_APPS = "showAntiFeatureApps";
|
||||
public static final String PREF_FORCE_TOUCH_APPS = "ignoreTouchscreen";
|
||||
@ -151,7 +152,8 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh
|
||||
public enum Theme {
|
||||
light,
|
||||
dark,
|
||||
night,
|
||||
followSystem,
|
||||
night, // Obsolete
|
||||
lightWithDarkActionBar, // Obsolete
|
||||
}
|
||||
|
||||
@ -395,6 +397,10 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh
|
||||
return Theme.valueOf(preferences.getString(Preferences.PREF_THEME, null));
|
||||
}
|
||||
|
||||
public boolean isPureBlack() {
|
||||
return preferences.getBoolean(Preferences.PREF_USE_PURE_BLACK_DARK_THEME, false);
|
||||
}
|
||||
|
||||
public boolean isLocalRepoHttpsEnabled() {
|
||||
return false; // disabled until it works well
|
||||
}
|
||||
|
@ -174,9 +174,10 @@ public class InstallConfirmActivity extends AppCompatActivity implements OnCance
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
((FDroidApp) getApplication()).applyTheme(this);
|
||||
super.onCreate(icicle);
|
||||
|
||||
intent = getIntent();
|
||||
Uri uri = intent.getData();
|
||||
|
@ -45,13 +45,13 @@ import android.widget.Toast;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.appbar.MaterialToolbar;
|
||||
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
||||
import com.nostra13.universalimageloader.core.ImageLoader;
|
||||
|
||||
@ -106,15 +106,15 @@ public class AppDetailsActivity extends AppCompatActivity
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyTheme(this);
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.app_details2);
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
toolbar.setTitle(""); // Nice and clean toolbar
|
||||
toolbar.setNavigationIcon(R.drawable.ic_back);
|
||||
MaterialToolbar toolbar = findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
getSupportActionBar().setDisplayShowTitleEnabled(false); // clear title
|
||||
supportPostponeEnterTransition();
|
||||
|
||||
String packageName = getPackageNameFromIntent(getIntent());
|
||||
|
@ -29,10 +29,13 @@ import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.TextView;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.app.ShareCompat;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.fdroid.fdroid.Preferences;
|
||||
|
||||
import com.google.android.material.appbar.MaterialToolbar;
|
||||
|
||||
import org.fdroid.fdroid.FDroidApp;
|
||||
import org.fdroid.fdroid.R;
|
||||
import org.fdroid.fdroid.data.Repo;
|
||||
import org.fdroid.fdroid.data.RepoProvider;
|
||||
@ -50,17 +53,19 @@ public class InstallHistoryActivity extends AppCompatActivity {
|
||||
public static final String EXTRA_SHOW_FDROID_METRICS = "showFDroidMetrics";
|
||||
|
||||
private boolean showingInstallHistory;
|
||||
private Toolbar toolbar;
|
||||
private MaterialToolbar toolbar;
|
||||
private MenuItem showMenuItem;
|
||||
private TextView textView;
|
||||
private String appName;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_install_history);
|
||||
toolbar = findViewById(R.id.toolbar);
|
||||
toolbar.setTitle(getString(R.string.install_history));
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
|
@ -40,6 +40,7 @@ import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
@ -60,6 +61,9 @@ import androidx.loader.app.LoaderManager;
|
||||
import androidx.loader.content.CursorLoader;
|
||||
import androidx.loader.content.Loader;
|
||||
|
||||
import com.google.android.material.appbar.MaterialToolbar;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
|
||||
import org.fdroid.fdroid.AddRepoIntentService;
|
||||
import org.fdroid.fdroid.FDroidApp;
|
||||
import org.fdroid.fdroid.IndexUpdater;
|
||||
@ -96,8 +100,6 @@ public class ManageReposActivity extends AppCompatActivity
|
||||
IS_SWAP
|
||||
}
|
||||
|
||||
private Toolbar toolbar;
|
||||
|
||||
/**
|
||||
* True if activity started with an intent such as from QR code. False if
|
||||
* opened from, e.g. the main menu.
|
||||
@ -106,15 +108,37 @@ public class ManageReposActivity extends AppCompatActivity
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
((FDroidApp) getApplication()).applyTheme(this);
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setContentView(R.layout.repo_list_activity);
|
||||
|
||||
toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
MaterialToolbar toolbar = findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem menuItem) {
|
||||
if (menuItem.getItemId() == R.id.action_add_repo) {
|
||||
showAddRepo();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent upIntent = NavUtils.getParentActivityIntent(ManageReposActivity.this);
|
||||
if (NavUtils.shouldUpRecreateTask(ManageReposActivity.this, upIntent) || isTaskRoot()) {
|
||||
TaskStackBuilder.create(ManageReposActivity.this).addNextIntentWithParentStack(upIntent)
|
||||
.startActivities();
|
||||
} else {
|
||||
NavUtils.navigateUpTo(ManageReposActivity.this, upIntent);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
final ListView repoList = (ListView) findViewById(R.id.list);
|
||||
repoAdapter = new RepoAdapter(this);
|
||||
@ -129,6 +153,13 @@ public class ManageReposActivity extends AppCompatActivity
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
MenuInflater menuInflater = getMenuInflater();
|
||||
menuInflater.inflate(R.menu.manage_repos, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
@ -154,32 +185,6 @@ public class ManageReposActivity extends AppCompatActivity
|
||||
super.finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
toolbar.inflateMenu(R.menu.manage_repos);
|
||||
return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_add_repo:
|
||||
showAddRepo();
|
||||
return true;
|
||||
case android.R.id.home:
|
||||
Intent upIntent = NavUtils.getParentActivityIntent(this);
|
||||
if (NavUtils.shouldUpRecreateTask(this, upIntent) || isTaskRoot()) {
|
||||
TaskStackBuilder.create(this)
|
||||
.addNextIntentWithParentStack(upIntent)
|
||||
.startActivities();
|
||||
} else {
|
||||
NavUtils.navigateUpTo(this, upIntent);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
public String getPrimaryClipAsText() {
|
||||
CharSequence text = null;
|
||||
ClipboardManager clipboardManager = ContextCompat.getSystemService(this, ClipboardManager.class);
|
||||
@ -208,7 +213,7 @@ public class ManageReposActivity extends AppCompatActivity
|
||||
String text = getPrimaryClipAsText();
|
||||
String fingerprint = null;
|
||||
String username = null;
|
||||
String password = null;
|
||||
StringBuilder password = null;
|
||||
if (!TextUtils.isEmpty(text)) {
|
||||
try {
|
||||
new URL(text);
|
||||
@ -224,9 +229,9 @@ public class ManageReposActivity extends AppCompatActivity
|
||||
String[] userInfoTokens = userInfo.split(":");
|
||||
if (userInfoTokens.length >= 2) {
|
||||
username = userInfoTokens[0];
|
||||
password = userInfoTokens[1];
|
||||
password = new StringBuilder(userInfoTokens[1]);
|
||||
for (int i = 2; i < userInfoTokens.length; i++) {
|
||||
password += ":" + userInfoTokens[i];
|
||||
password.append(":").append(userInfoTokens[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -240,7 +245,7 @@ public class ManageReposActivity extends AppCompatActivity
|
||||
if (TextUtils.isEmpty(text)) {
|
||||
text = DEFAULT_NEW_REPO_TEXT;
|
||||
}
|
||||
showAddRepo(text, fingerprint, username, password);
|
||||
showAddRepo(text, fingerprint, username, password != null ? password.toString() : null);
|
||||
}
|
||||
|
||||
private void showAddRepo(String newAddress, String newFingerprint, String username, String password) {
|
||||
@ -289,19 +294,18 @@ public class ManageReposActivity extends AppCompatActivity
|
||||
}
|
||||
|
||||
final View view = getLayoutInflater().inflate(R.layout.addrepo, null);
|
||||
addRepoDialog = new AlertDialog.Builder(context).setView(view).create();
|
||||
MaterialAlertDialogBuilder addRepoDialogBuilder = new MaterialAlertDialogBuilder(context);
|
||||
addRepoDialogBuilder.setView(view);
|
||||
final EditText uriEditText = (EditText) view.findViewById(R.id.edit_uri);
|
||||
final EditText fingerprintEditText = (EditText) view.findViewById(R.id.edit_fingerprint);
|
||||
|
||||
addRepoDialog.setTitle(R.string.repo_add_title);
|
||||
addRepoDialog.setButton(DialogInterface.BUTTON_NEGATIVE,
|
||||
getString(R.string.cancel),
|
||||
new DialogInterface.OnClickListener() {
|
||||
addRepoDialogBuilder.setTitle(R.string.repo_add_title);
|
||||
addRepoDialogBuilder.setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
dialog.dismiss();
|
||||
if (finishAfterAddingRepo) {
|
||||
ManageReposActivity.this.finish();
|
||||
finish();
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -319,15 +323,14 @@ public class ManageReposActivity extends AppCompatActivity
|
||||
// hang around so we can show further info on it.
|
||||
//
|
||||
// Thus, the hack described at http://stackoverflow.com/a/15619098 is implemented.
|
||||
addRepoDialog.setButton(DialogInterface.BUTTON_POSITIVE,
|
||||
getString(R.string.repo_add_add),
|
||||
addRepoDialogBuilder.setPositiveButton(getString(R.string.repo_add_add),
|
||||
new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
}
|
||||
});
|
||||
|
||||
addRepoDialog.show();
|
||||
addRepoDialog = addRepoDialogBuilder.show();
|
||||
|
||||
// This must be *after* addRepoDialog.show() otherwise getButtion() returns null:
|
||||
// https://code.google.com/p/android/issues/detail?id=6360
|
||||
|
@ -33,8 +33,11 @@ import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Toast;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.preference.CheckBoxPreference;
|
||||
import androidx.preference.EditTextPreference;
|
||||
@ -44,10 +47,13 @@ import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
import androidx.preference.PreferenceGroup;
|
||||
import androidx.preference.SeekBarPreference;
|
||||
import androidx.preference.SwitchPreference;
|
||||
import androidx.preference.SwitchPreferenceCompat;
|
||||
import androidx.recyclerview.widget.LinearSmoothScroller;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import info.guardianproject.netcipher.proxy.OrbotHelper;
|
||||
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
|
||||
import org.fdroid.fdroid.FDroidApp;
|
||||
import org.fdroid.fdroid.Languages;
|
||||
import org.fdroid.fdroid.Preferences;
|
||||
@ -72,6 +78,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat
|
||||
Preferences.PREF_SHOW_ANTI_FEATURE_APPS,
|
||||
Preferences.PREF_SHOW_INCOMPAT_VERSIONS,
|
||||
Preferences.PREF_THEME,
|
||||
Preferences.PREF_USE_PURE_BLACK_DARK_THEME,
|
||||
Preferences.PREF_FORCE_TOUCH_APPS,
|
||||
Preferences.PREF_LOCAL_REPO_NAME,
|
||||
Preferences.PREF_LANGUAGE,
|
||||
@ -99,8 +106,8 @@ public class PreferencesFragment extends PreferenceFragmentCompat
|
||||
private LiveSeekBarPreference overWifiSeekBar;
|
||||
private LiveSeekBarPreference overDataSeekBar;
|
||||
private LiveSeekBarPreference updateIntervalSeekBar;
|
||||
private SwitchPreference enableProxyCheckPref;
|
||||
private SwitchPreference useTorCheckPref;
|
||||
private SwitchPreferenceCompat enableProxyCheckPref;
|
||||
private SwitchPreferenceCompat useTorCheckPref;
|
||||
private Preference updateAutoDownloadPref;
|
||||
private CheckBoxPreference keepInstallHistoryPref;
|
||||
private CheckBoxPreference sendToFDroidMetricsPref;
|
||||
@ -121,6 +128,12 @@ public class PreferencesFragment extends PreferenceFragmentCompat
|
||||
addPreferencesFromResource(R.xml.preferences);
|
||||
otherPrefGroup = (PreferenceGroup) findPreference("pref_category_other");
|
||||
|
||||
|
||||
Preference aboutPreference = findPreference("pref_about");
|
||||
if (aboutPreference != null) {
|
||||
aboutPreference.setOnPreferenceClickListener(aboutPrefClickedListener);
|
||||
}
|
||||
|
||||
keepInstallHistoryPref = (CheckBoxPreference) findPreference(Preferences.PREF_KEEP_INSTALL_HISTORY);
|
||||
sendToFDroidMetricsPref = findPreference(Preferences.PREF_SEND_TO_FDROID_METRICS);
|
||||
sendToFDroidMetricsPref.setEnabled(keepInstallHistoryPref.isChecked());
|
||||
@ -132,9 +145,9 @@ public class PreferencesFragment extends PreferenceFragmentCompat
|
||||
installHistoryPref.setTitle(R.string.install_history);
|
||||
}
|
||||
|
||||
useTorCheckPref = (SwitchPreference) findPreference(Preferences.PREF_USE_TOR);
|
||||
useTorCheckPref = (SwitchPreferenceCompat) findPreference(Preferences.PREF_USE_TOR);
|
||||
useTorCheckPref.setOnPreferenceChangeListener(useTorChangedListener);
|
||||
enableProxyCheckPref = (SwitchPreference) findPreference(Preferences.PREF_ENABLE_PROXY);
|
||||
enableProxyCheckPref = (SwitchPreferenceCompat) findPreference(Preferences.PREF_ENABLE_PROXY);
|
||||
enableProxyCheckPref.setOnPreferenceChangeListener(proxyEnabledChangedListener);
|
||||
updateAutoDownloadPref = findPreference(Preferences.PREF_AUTO_DOWNLOAD_INSTALL_UPDATES);
|
||||
|
||||
@ -269,9 +282,17 @@ public class PreferencesFragment extends PreferenceFragmentCompat
|
||||
if (changing) {
|
||||
AppCompatActivity activity = (AppCompatActivity) getActivity();
|
||||
FDroidApp fdroidApp = (FDroidApp) activity.getApplication();
|
||||
fdroidApp.reloadTheme();
|
||||
fdroidApp.applyTheme(activity);
|
||||
FDroidApp.forceChangeTheme(activity);
|
||||
fdroidApp.applyTheme();
|
||||
}
|
||||
break;
|
||||
|
||||
case Preferences.PREF_USE_PURE_BLACK_DARK_THEME:
|
||||
if (changing) {
|
||||
AppCompatActivity activity = (AppCompatActivity) getActivity();
|
||||
// Theme will be applied upon activity creation
|
||||
if (activity != null) {
|
||||
activity.recreate();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@ -349,7 +370,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat
|
||||
break;
|
||||
|
||||
case Preferences.PREF_ENABLE_PROXY:
|
||||
SwitchPreference checkPref = (SwitchPreference) findPreference(key);
|
||||
SwitchPreferenceCompat checkPref = (SwitchPreferenceCompat) findPreference(key);
|
||||
checkPref.setSummary(R.string.enable_proxy_summary);
|
||||
break;
|
||||
|
||||
@ -400,6 +421,31 @@ public class PreferencesFragment extends PreferenceFragmentCompat
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* About dialog click listener
|
||||
* <p>
|
||||
* TODO: this might need to be changed when updated to the new preference pattern
|
||||
*/
|
||||
|
||||
private final Preference.OnPreferenceClickListener aboutPrefClickedListener =
|
||||
new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
final View view = getLayoutInflater().inflate(R.layout.about, null);
|
||||
final Context context = requireContext();
|
||||
|
||||
String versionName = Utils.getVersionName(context);
|
||||
if (versionName != null) {
|
||||
((TextView) view.findViewById(R.id.version)).setText(versionName);
|
||||
}
|
||||
new MaterialAlertDialogBuilder(context)
|
||||
.setView(view)
|
||||
.setPositiveButton(R.string.ok, null)
|
||||
.show();
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Initializes SystemInstaller preference, which can only be enabled when F-Droid is installed as a system-app
|
||||
*/
|
||||
|
@ -29,13 +29,14 @@ import android.widget.Toast;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.app.NavUtils;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.appbar.MaterialToolbar;
|
||||
|
||||
import org.fdroid.fdroid.FDroidApp;
|
||||
import org.fdroid.fdroid.NfcHelper;
|
||||
import org.fdroid.fdroid.NfcNotEnabledActivity;
|
||||
@ -103,13 +104,14 @@ public class RepoDetailsActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
((FDroidApp) getApplication()).applyTheme(this);
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setContentView(R.layout.activity_repo_details);
|
||||
|
||||
Toolbar toolbar = findViewById(R.id.toolbar);
|
||||
MaterialToolbar toolbar = findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
|
@ -49,7 +49,7 @@ public class ScreenShotsActivity extends AppCompatActivity {
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyTheme(this);
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_screenshots);
|
||||
|
@ -87,7 +87,9 @@ public class AppListActivity extends AppCompatActivity implements LoaderManager.
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
((FDroidApp) getApplication()).applyTheme(this);
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setContentView(R.layout.activity_app_list);
|
||||
|
@ -21,19 +21,22 @@ package org.fdroid.fdroid.views.installed;
|
||||
|
||||
import android.database.Cursor;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.core.app.ShareCompat;
|
||||
import androidx.loader.content.CursorLoader;
|
||||
import androidx.loader.content.Loader;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.app.ShareCompat;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.loader.content.CursorLoader;
|
||||
import androidx.loader.content.Loader;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.appbar.MaterialToolbar;
|
||||
|
||||
import org.fdroid.fdroid.FDroidApp;
|
||||
import org.fdroid.fdroid.R;
|
||||
import org.fdroid.fdroid.data.App;
|
||||
@ -48,14 +51,14 @@ public class InstalledAppsActivity extends AppCompatActivity implements LoaderMa
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
((FDroidApp) getApplication()).applyTheme(this);
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setContentView(R.layout.installed_apps_layout);
|
||||
|
||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||
toolbar.setTitle(getString(R.string.installed_apps__activity_title));
|
||||
MaterialToolbar toolbar = findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
|
@ -40,6 +40,7 @@ import android.widget.Toast;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
@ -109,7 +110,9 @@ public class MainActivity extends AppCompatActivity implements BottomNavigationB
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
((FDroidApp) getApplication()).applyTheme(this);
|
||||
FDroidApp fdroidApp = (FDroidApp) getApplication();
|
||||
fdroidApp.applyPureBlackBackgroundInDarkTheme(this);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setContentView(R.layout.activity_main);
|
||||
@ -457,12 +460,10 @@ public class MainActivity extends AppCompatActivity implements BottomNavigationB
|
||||
}
|
||||
|
||||
private int getBottomNavigationBackgroundColorResId() {
|
||||
switch (FDroidApp.getCurThemeResId()) {
|
||||
case R.style.AppThemeNight:
|
||||
if (AppCompatDelegate.getDefaultNightMode() == AppCompatDelegate.MODE_NIGHT_YES) {
|
||||
return R.color.fdroid_night;
|
||||
default:
|
||||
return R.color.fdroid_blue;
|
||||
}
|
||||
return R.color.fdroid_blue;
|
||||
}
|
||||
|
||||
private static class NonScrollingHorizontalLayoutManager extends LinearLayoutManager {
|
||||
|
@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="#fff">
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="24dp" />
|
||||
<solid android:color="@color/fdroid_blue" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="@color/fdroid_blue">
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="24dp" />
|
||||
<solid android:color="#fff" />
|
||||
<stroke android:color="@color/fdroid_blue" android:width="2dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
@ -1,27 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true">
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="24dp" />
|
||||
<solid android:color="@color/fdroid_blue_dark" />
|
||||
</shape>
|
||||
</item>
|
||||
<item android:state_checked="true">
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="24dp" />
|
||||
<solid android:color="@color/fdroid_blue_dark" />
|
||||
</shape>
|
||||
</item>
|
||||
<item android:state_enabled="false">
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="24dp" />
|
||||
<solid android:color="@color/fdroid_blue_dark" />
|
||||
</shape>
|
||||
</item>
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="24dp" />
|
||||
<solid android:color="@color/fdroid_blue" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true">
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="24dp" />
|
||||
<solid android:color="@color/fdroid_blue" />
|
||||
</shape>
|
||||
</item>
|
||||
<item android:state_checked="true">
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="24dp" />
|
||||
<solid android:color="@color/fdroid_blue" />
|
||||
</shape>
|
||||
</item>
|
||||
<item android:state_enabled="false">
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="24dp" />
|
||||
<solid android:color="@color/fdroid_blue" />
|
||||
</shape>
|
||||
</item>
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<corners android:radius="24dp" />
|
||||
<solid android:color="@android:color/white" />
|
||||
<stroke android:color="@color/fdroid_blue" android:width="2dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="#262627" />
|
||||
</shape>
|
10
app/src/main/res/drawable/ic_close.xml
Normal file
10
app/src/main/res/drawable/ic_close.xml
Normal file
@ -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="#ffffffff"
|
||||
android:pathData="M18.3,5.71c-0.39,-0.39 -1.02,-0.39 -1.41,0L12,10.59 7.11,5.7c-0.39,-0.39 -1.02,-0.39 -1.41,0 -0.39,0.39 -0.39,1.02 0,1.41L10.59,12 5.7,16.89c-0.39,0.39 -0.39,1.02 0,1.41 0.39,0.39 1.02,0.39 1.41,0L12,13.41l4.89,4.89c0.39,0.39 1.02,0.39 1.41,0 0.39,-0.39 0.39,-1.02 0,-1.41L13.41,12l4.89,-4.89c0.38,-0.38 0.38,-1.02 0,-1.4z"/>
|
||||
</vector>
|
@ -1,10 +0,0 @@
|
||||
<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="#FFFFFF"
|
||||
android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
|
||||
</vector>
|
@ -6,5 +6,5 @@
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FFFFFF"
|
||||
android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z" />
|
||||
android:pathData="M15.5,14h-0.79l-0.28,-0.27c1.2,-1.4 1.82,-3.31 1.48,-5.34 -0.47,-2.78 -2.79,-5 -5.59,-5.34 -4.23,-0.52 -7.79,3.04 -7.27,7.27 0.34,2.8 2.56,5.12 5.34,5.59 2.03,0.34 3.94,-0.28 5.34,-1.48l0.27,0.28v0.79l4.25,4.25c0.41,0.41 1.08,0.41 1.49,0 0.41,-0.41 0.41,-1.08 0,-1.49L15.5,14zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z" />
|
||||
</vector>
|
||||
|
@ -1,10 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M1,21h22L12,2 1,21zM13,18h-2v-2h2v2zM13,14h-2v-4h2v4z" />
|
||||
</vector>
|
@ -1,10 +0,0 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:pathData="M1,21h22L12,2 1,21zM13,18h-2v-2h2v2zM13,14h-2v-4h2v4z" />
|
||||
</vector>
|
62
app/src/main/res/layout-v21/app_details2.xml
Normal file
62
app/src/main/res/layout-v21/app_details2.xml
Normal file
@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
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="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="org.fdroid.fdroid.views.AppDetailsActivity"
|
||||
android:background="?attr/appDetailsBackground"
|
||||
android:fitsSystemWindows="true"
|
||||
android:id="@+id/rootCoordinator">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/app_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/app_bar_height"
|
||||
android:fitsSystemWindows="true"
|
||||
app:layout_behavior="org.fdroid.fdroid.views.FixAppBarLayoutBehavior">
|
||||
|
||||
<com.google.android.material.appbar.CollapsingToolbarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true"
|
||||
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
|
||||
app:contentScrim="?attr/colorPrimarySurface"
|
||||
app:statusBarScrim="?attr/colorPrimarySurface"
|
||||
app:expandedTitleTextAppearance="@style/TextAppearance.App.CollapsingToolbar.Expanded"
|
||||
app:collapsedTitleTextAppearance="@style/TextAppearance.App.CollapsingToolbar.Collapsed"
|
||||
app:expandedTitleMarginTop="24dp">
|
||||
|
||||
<org.fdroid.fdroid.views.apps.FeatureImage
|
||||
android:id="@+id/feature_graphic"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scaleType="centerCrop"
|
||||
android:fitsSystemWindows="true"
|
||||
app:layout_collapseMode="parallax" />
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:navigationIcon="@drawable/ic_back"
|
||||
android:background="@android:color/transparent"
|
||||
app:layout_collapseMode="pin"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.PrimarySurface"
|
||||
android:elevation="0dp" />
|
||||
|
||||
</com.google.android.material.appbar.CollapsingToolbarLayout>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rvDetails"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||
app:layoutManager="LinearLayoutManager"
|
||||
tools:context="org.fdroid.fdroid.views.AppDetailsActivity"
|
||||
tools:showIn="@layout/app_details2" />
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
266
app/src/main/res/layout-v21/app_details2_header.xml
Normal file
266
app/src/main/res/layout-v21/app_details2_header.xml
Normal file
@ -0,0 +1,266 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<androidx.cardview.widget.CardView 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="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/details_activity_padding"
|
||||
app:cardBackgroundColor="?attr/appDetailsCardBackground"
|
||||
app:cardCornerRadius="3dp"
|
||||
app:cardElevation="3dp"
|
||||
android:animateLayoutChanges="true">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginRight="8dp">
|
||||
|
||||
<!-- Icon, Name, Author (optional), Updated date -->
|
||||
<RelativeLayout
|
||||
android:id="@+id/icon_and_name"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="12dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon"
|
||||
android:layout_width="72dp"
|
||||
android:layout_height="72dp"
|
||||
android:layout_alignParentStart="true"
|
||||
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_marginEnd="8dp"
|
||||
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_repo_app_default"
|
||||
android:transitionName="@string/transition_app_item_icon" />
|
||||
|
||||
<!-- Name, Author (optional), Updated date -->
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_toEndOf="@id/icon"
|
||||
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@style/DetailsAppTitleStyle"
|
||||
tools:text="Really Long App Title Which Wraps Around Onto the Second Line" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/author"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
|
||||
tools:text="Author" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_last_update"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@style/DetailsLastUpdatedStyle"
|
||||
android:textColor="@android:color/darker_gray"
|
||||
tools:text="Update released 12 days ago" />
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
<!-- Progress info -->
|
||||
<RelativeLayout
|
||||
android:id="@+id/progress_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/icon_and_name"
|
||||
tools:visibility="gone">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/progress_cancel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
|
||||
android:layout_centerVertical="true"
|
||||
android:contentDescription="@string/app__tts__cancel_download"
|
||||
android:src="@android:drawable/ic_menu_close_clear_cancel" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/progress_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentStart="true"
|
||||
|
||||
android:contentDescription="@string/downloading"
|
||||
android:focusable="true"
|
||||
android:text="@string/downloading"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Small" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/progress_percent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toStartOf="@id/progress_cancel"
|
||||
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||
tools:text="500%" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progress_bar"
|
||||
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/progress_label"
|
||||
android:layout_alignParentStart="true"
|
||||
|
||||
android:layout_toStartOf="@id/progress_cancel"
|
||||
/>
|
||||
</RelativeLayout>
|
||||
|
||||
<!-- Install, Uninstall, Update, Open buttons -->
|
||||
<LinearLayout
|
||||
android:id="@+id/button_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/icon_and_name"
|
||||
android:clipToPadding="false"
|
||||
android:gravity="end"
|
||||
android:paddingBottom="4dp"
|
||||
android:visibility="visible">
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/secondaryButtonView"
|
||||
style="@style/DetailsSecondaryButtonStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0"
|
||||
android:ellipsize="marquee"
|
||||
tools:text="Uninstall" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/primaryButtonView"
|
||||
style="@style/DetailsPrimaryButtonStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
|
||||
android:layout_weight="0"
|
||||
android:ellipsize="marquee"
|
||||
tools:text="Open" />
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/summary"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:paddingStart="8dp"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingRight="8dp"
|
||||
android:padding="8dp"
|
||||
android:scrollbars="none"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
|
||||
android:textIsSelectable="true"
|
||||
android:textStyle="bold"
|
||||
android:background="?attr/detailPanel"
|
||||
tools:text="App summary, one line - outlining what this app does" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/latest"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/detailPanel"
|
||||
android:paddingStart="8dp"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingRight="8dp"
|
||||
android:paddingBottom="16dp"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
|
||||
tools:text="NEW IN VERSION 1.0.2233\n\nA lot has happened since the last build:\n\n\t• Improved UI\n\t• Bug fixes" />
|
||||
|
||||
|
||||
<TextView
|
||||
android:id="@+id/description"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:scrollbars="none"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
|
||||
android:textIsSelectable="true"
|
||||
tools:text="This is the app description of this awezome app. It can be several lines long, but will be truncated at just a few if it is. A 'read more' button will appear so that you can expand the view and view the full text, if you wish. Yes, it will be blue and beautiful." />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/anti_features_section"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/anti_features_warning"
|
||||
style="@style/DetailsAntiFeaturesWarningStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawableStart="@drawable/ic_warning"
|
||||
|
||||
android:drawablePadding="10dp"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingRight="8dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="@string/antifeatureswarning"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/label_anti_features"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingRight="8dp"
|
||||
android:scrollbars="none"
|
||||
android:text="@string/antifeatures"
|
||||
android:textAllCaps="true"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<!-- listing of all anti-features -->
|
||||
<org.fdroid.fdroid.views.appdetails.AntiFeaturesListingView
|
||||
android:id="@+id/anti_features_full_listing"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/description_more"
|
||||
style="@style/DetailsMoreButtonStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="4dp"
|
||||
android:text="@string/more" />
|
||||
|
||||
</LinearLayout>
|
||||
</androidx.cardview.widget.CardView>
|
@ -1,7 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
@ -50,25 +51,6 @@
|
||||
android:text="@string/license_gplv3_later"
|
||||
style="@style/BodyText" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center"
|
||||
android:layout_marginTop="12dp"
|
||||
android:paddingBottom="16dp"
|
||||
android:clipToPadding="false">
|
||||
|
||||
<Button
|
||||
android:layout_width="wrap_content"
|
||||
android:minWidth="100dp"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/DetailsPrimaryButtonStyle"
|
||||
android:id="@+id/ok_button"
|
||||
android:text="@string/ok" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
@ -5,7 +5,8 @@
|
||||
android:id="@+id/app_list_root"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/search_card"
|
||||
|
@ -4,25 +4,26 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".views.InstallHistoryActivity">
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
tools:context=".views.InstallHistoryActivity"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/app_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="@style/AppThemeLight.AppBarOverlay">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:fitsSystemWindows="true"
|
||||
app:liftOnScroll="true">
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"/>
|
||||
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:title="@string/install_history"
|
||||
app:navigationIcon="@drawable/ic_back"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.PrimarySurface" />
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
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="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||
|
@ -3,7 +3,8 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<com.ashokvarma.bottomnavigation.BottomNavigationBar
|
||||
android:id="@+id/bottom_navigation"
|
||||
|
@ -1,18 +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"
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="vertical"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/colorPrimary"
|
||||
android:title="@string/repo_details"
|
||||
app:theme="?attr/actionBarTheme" />
|
||||
android:fitsSystemWindows="true"
|
||||
app:liftOnScroll="true">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:title="@string/repo_details"
|
||||
app:navigationIcon="@drawable/ic_back"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.PrimarySurface" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
|
@ -5,6 +5,7 @@
|
||||
android:id="@+id/screenshot_view_pager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="org.fdroid.fdroid.views.ScreenShotsActivity" />
|
||||
tools:context="org.fdroid.fdroid.views.ScreenShotsActivity"
|
||||
android:fitsSystemWindows="true"/>
|
||||
|
||||
|
||||
|
@ -7,4 +7,5 @@
|
||||
android:layout_height="match_parent"
|
||||
android:contentDescription="@null"
|
||||
android:padding="@dimen/layout_horizontal_margin"
|
||||
tools:src="@drawable/screenshot_placeholder" />
|
||||
tools:src="@drawable/screenshot_placeholder"
|
||||
android:fitsSystemWindows="true"/>
|
||||
|
@ -1,42 +1,52 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
|
||||
<com.google.android.material.card.MaterialCardView 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="100dp"
|
||||
android:layout_height="130dp"
|
||||
android:background="?attr/categoryPreviewAppCardBackground"
|
||||
android:padding="8dp">
|
||||
android:id="@+id/card"
|
||||
android:layout_width="120dp"
|
||||
android:layout_height="144dp"
|
||||
android:layout_margin="4dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<!-- Ignore ContentDescription because it is kind of meaningless to have TTS read out "App icon"
|
||||
when it will inevitably read out the name of the app straight after. -->
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/linearLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/icon"
|
||||
android:layout_width="48dip"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="48dip"
|
||||
tools:src="@drawable/ic_launcher"
|
||||
android:layout_marginTop="8dp"
|
||||
android:scaleType="fitCenter"
|
||||
android:transitionName="@string/transition_app_item_icon"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:ignore="ContentDescription" />
|
||||
tools:ignore="ContentDescription"
|
||||
tools:src="@drawable/ic_launcher" />
|
||||
|
||||
<TextView
|
||||
tools:text="F-Droid An application summary which takes up too much space and must ellipsize"
|
||||
android:id="@+id/summary"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/summary"
|
||||
android:maxLines="3"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:ellipsize="end"
|
||||
app:layout_constraintTop_toBottomOf="@+id/icon"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
android:maxLines="3"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
android:layout_marginTop="8dp" />
|
||||
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/icon"
|
||||
tools:text="F-Droid An application summary which takes up too much space and must ellipsize" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</LinearLayout>
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
@ -1,11 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
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="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="org.fdroid.fdroid.views.AppDetailsActivity"
|
||||
android:background="?attr/appDetailsBackground"
|
||||
android:fitsSystemWindows="true"
|
||||
android:id="@+id/rootCoordinator">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
@ -13,15 +15,17 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/app_bar_height"
|
||||
android:fitsSystemWindows="true"
|
||||
android:theme="@style/AppThemeLight.AppBarOverlay"
|
||||
app:layout_behavior="org.fdroid.fdroid.views.FixAppBarLayoutBehavior">
|
||||
|
||||
<com.google.android.material.appbar.CollapsingToolbarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true"
|
||||
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
|
||||
app:contentScrim="?attr/colorPrimary"
|
||||
app:layout_scrollFlags="scroll|exitUntilCollapsed"
|
||||
app:statusBarScrim="?attr/colorPrimaryVariant"
|
||||
app:expandedTitleTextAppearance="@style/TextAppearance.App.CollapsingToolbar.Expanded"
|
||||
app:collapsedTitleTextAppearance="@style/TextAppearance.App.CollapsingToolbar.Collapsed"
|
||||
app:expandedTitleMarginTop="24dp">
|
||||
|
||||
<org.fdroid.fdroid.views.apps.FeatureImage
|
||||
@ -32,12 +36,14 @@
|
||||
android:fitsSystemWindows="true"
|
||||
app:layout_collapseMode="parallax" />
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:navigationIcon="@drawable/ic_back"
|
||||
android:background="@android:color/transparent"
|
||||
app:layout_collapseMode="pin"
|
||||
app:popupTheme="@style/AppThemeLight.PopupOverlay" />
|
||||
style="@style/Widget.MaterialComponents.Toolbar.PrimarySurface" />
|
||||
|
||||
</com.google.android.material.appbar.CollapsingToolbarLayout>
|
||||
|
||||
|
@ -108,7 +108,7 @@
|
||||
android:contentDescription="@string/downloading"
|
||||
android:focusable="true"
|
||||
android:text="@string/downloading"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Small" />
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Caption" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/progress_percent"
|
||||
@ -116,7 +116,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toStartOf="@id/progress_cancel"
|
||||
android:layout_toLeftOf="@id/progress_cancel"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||
android:textAppearance="@style/TextAppearance.MaterialComponents.Caption"
|
||||
tools:text="500%" />
|
||||
|
||||
<ProgressBar
|
||||
@ -142,7 +142,7 @@
|
||||
android:paddingBottom="4dp"
|
||||
android:visibility="visible">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/secondaryButtonView"
|
||||
style="@style/DetailsSecondaryButtonStyle"
|
||||
android:layout_width="wrap_content"
|
||||
@ -151,7 +151,7 @@
|
||||
android:ellipsize="marquee"
|
||||
tools:text="Uninstall" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/primaryButtonView"
|
||||
style="@style/DetailsPrimaryButtonStyle"
|
||||
android:layout_width="wrap_content"
|
||||
|
@ -30,17 +30,8 @@
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:paddingLeft="18dp"
|
||||
android:paddingStart="18dp"
|
||||
android:paddingRight="18dp"
|
||||
android:paddingEnd="18dp"
|
||||
android:paddingTop="24dp"
|
||||
android:paddingBottom="12dp"
|
||||
android:textSize="14sp"
|
||||
style="@style/Widget.MaterialComponents.Button.TextButton"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="@color/fdroid_blue"
|
||||
|
||||
tools:layout_editor_absoluteX="268dp" />
|
||||
|
||||
<FrameLayout
|
||||
|
@ -1,19 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
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="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="0dp"
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/topAppBarLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/colorPrimary"
|
||||
android:fitsSystemWindows="true"
|
||||
app:liftOnScroll="true"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:theme="?attr/actionBarTheme" />
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:title="@string/installed_apps__activity_title"
|
||||
app:navigationIcon="@drawable/ic_back"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.PrimarySurface" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/empty_state"
|
||||
@ -25,7 +37,7 @@
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/toolbar" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/topAppBarLayout" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/app_list"
|
||||
@ -35,7 +47,7 @@
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/toolbar"
|
||||
app:layout_constraintTop_toBottomOf="@+id/topAppBarLayout"
|
||||
tools:listitem="@layout/installed_app_list_item" />
|
||||
|
||||
<!--
|
||||
|
@ -1,7 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
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:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -5,7 +5,8 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||
android:layout_width="match_parent"
|
||||
|
@ -1,18 +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"
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="vertical"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/colorPrimary"
|
||||
android:title="@string/menu_manage"
|
||||
app:theme="?attr/actionBarTheme" />
|
||||
android:fitsSystemWindows="true"
|
||||
app:liftOnScroll="true">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:title="@string/menu_manage"
|
||||
app:navigationIcon="@drawable/ic_back"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.PrimarySurface" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<ListView
|
||||
android:id="@+id/list"
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<item
|
||||
android:id="@+id/action_share"
|
||||
|
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<transitionSet>
|
||||
<changeImageTransform />
|
||||
<changeBounds />
|
||||
<changeTransform />
|
||||
<changeClipBounds />
|
||||
</transitionSet>
|
@ -280,7 +280,6 @@
|
||||
<string name="keep_forever">Vir ewig</string>
|
||||
<string name="theme_light">Lig</string>
|
||||
<string name="theme_dark">Donker</string>
|
||||
<string name="theme_night">Nag</string>
|
||||
<string name="crash_dialog_title">F-Droid het ineengestort</string>
|
||||
<string name="crash_dialog_text">\'N Onverwagse fout het voorgekom wat die program laat stop het.
|
||||
Wil jy \'n e-pos met die besonderhede stuur om die probleem te help oplos?
|
||||
|
@ -260,7 +260,6 @@
|
||||
<string name="keep_forever">إلى الأبد</string>
|
||||
<string name="theme_light">فاتحة</string>
|
||||
<string name="theme_dark">داكنة</string>
|
||||
<string name="theme_night">ليلية</string>
|
||||
<string name="crash_dialog_title">لقد تعطل اف-درويد</string>
|
||||
<string name="crash_dialog_text">حدث خطأ غير متوقع أجبَر التطبيق على التوقف. هل ترغب في إرسال بريد إلكتروني بالتفاصيل للمساعدة في حل المشكلة ؟</string>
|
||||
<string name="crash_dialog_comment_prompt">يمكنك إضافة معلومات وتعليقات إضافية هنا:</string>
|
||||
|
@ -227,7 +227,6 @@
|
||||
<string name="more">Más</string>
|
||||
<string name="less">Menos</string>
|
||||
<string name="permissions">Permisos</string>
|
||||
<string name="theme_night">Nueche</string>
|
||||
<string name="menu_settings">Axustes</string>
|
||||
<string name="login_title">Ríquese l\'autenticación</string>
|
||||
<string name="login_name">Nome d\'usuariu</string>
|
||||
|
@ -268,7 +268,6 @@
|
||||
<string name="keep_forever">Заўсёды</string>
|
||||
<string name="theme_light">Светлая</string>
|
||||
<string name="theme_dark">Цёмная</string>
|
||||
<string name="theme_night">Начная</string>
|
||||
<string name="crash_dialog_title">F-Droid даў хібу</string>
|
||||
<string name="crash_dialog_text">Узнікла нечаканая памылка, што прывяла да аварыйнага спынення праграмы. Хочаце адправіць электронны ліст з падрабязнасцямі, каб дапамагчы выправіць гэтую праблему\?</string>
|
||||
<string name="crash_dialog_comment_prompt">Можаце ўвясці дадатковую інфармацыю і каментары сюды:</string>
|
||||
|
@ -218,7 +218,6 @@
|
||||
<string name="swap_confirm_connect">Желаете ли да получите приложения от %1$s?</string>
|
||||
<string name="swap_qr_isnt_for_swap">Сканираният QR код не е код за размяна.</string>
|
||||
<string name="status_processing_xml_percent">Обработване на %2$s / %3$s (%4$d%%) от %1$s</string>
|
||||
<string name="theme_night">Нощна</string>
|
||||
<string name="repo_added">Хранилището %1$s е записано.</string>
|
||||
<string name="repo_searching_address">Търсене на хранилище в\n%1$s</string>
|
||||
<string name="unsigned">Неподписано</string>
|
||||
|
@ -6,7 +6,6 @@
|
||||
<string name="yes">হ্যাঁ</string>
|
||||
<string name="no">না</string>
|
||||
<string name="back">ফিরে</string>
|
||||
<string name="theme_night">রাত</string>
|
||||
<string name="theme_dark">অন্ধকার</string>
|
||||
<string name="theme_light">হালকা</string>
|
||||
<string name="status_inserting_apps">অ্যাপের বিবরণ সংরক্ষণ করা হচ্ছে</string>
|
||||
|
@ -86,7 +86,6 @@
|
||||
<string name="category_Time">সময়</string>
|
||||
<string name="category_Security">নিরাপত্তা</string>
|
||||
<string name="category_Navigation">দিক নির্ণয়</string>
|
||||
<string name="theme_night">রাত</string>
|
||||
<string name="theme_dark">অন্ধকার</string>
|
||||
<string name="theme_light">হালকা</string>
|
||||
<string name="swap_send_fdroid">এফ-ড্রয়েড পাঠান</string>
|
||||
|
@ -357,7 +357,6 @@
|
||||
<string name="status_inserting_apps">མཉེས་ཆས་ཞིབ་ཕྲ་ཉར་ཚགས་བྱེད་བཞིན་པ།</string>
|
||||
<string name="theme_light">དཀར་མདངས།</string>
|
||||
<string name="theme_dark">ནག་པོ།</string>
|
||||
<string name="theme_night">མཚན་མོ།</string>
|
||||
<string name="tts_category_name">སྡེ་ཚན་%1$s</string>
|
||||
<string name="app_details__incompatible_mismatched_signature">སྒྲིག་བཅུག་བྱེད་པའི་ཐོན་རིམ་འདི་མིང་རྟགས་མཐུན་མ་སོང་།</string>
|
||||
<string name="app_details__no_versions__show_incompat_versions">འདིར་ཐོན་རིམ་མི་མཐུན་པ་རྣམས་སྟོན་དགོས་ན། \"%1$s\" སྒྲིག་བཀོད་འདི་སྒོ་ཕྱེད།</string>
|
||||
|
@ -180,7 +180,6 @@
|
||||
<string name="interval_2w">Cerca actualitzacions cada dues setmanes</string>
|
||||
<string name="theme_light">Clar</string>
|
||||
<string name="theme_dark">Fosc</string>
|
||||
<string name="theme_night">Nit</string>
|
||||
<string name="newPerms">Nous</string>
|
||||
<string name="allPerms">Tots</string>
|
||||
<string name="perm_costs_money">Això us pot costar diners</string>
|
||||
|
@ -227,7 +227,6 @@
|
||||
<string name="interval_2w">Zjišťovat aktualizace každé 2 týdny</string>
|
||||
<string name="theme_light">Světlý</string>
|
||||
<string name="theme_dark">Tmavý</string>
|
||||
<string name="theme_night">Noc</string>
|
||||
<string name="system_install_denied_permissions">Privilegovaná oprávnění nebyla tomuto rozšíření udělena! Nahlašte
|
||||
prosím jako chybu!
|
||||
</string>
|
||||
|
@ -346,7 +346,6 @@
|
||||
<string name="keep_forever">Am byth</string>
|
||||
<string name="theme_light">Golau</string>
|
||||
<string name="theme_dark">Tywyll</string>
|
||||
<string name="theme_night">Nos</string>
|
||||
<string name="crash_dialog_title">Mae F-Droid wedi chwalu</string>
|
||||
<string name="crash_dialog_text">Bu gwall annisgwyl a orfododd yr ap i stopio. Hoffet anfon neges e-bost gyda\'r manylion er mwyn trwsio\'r broblem\?</string>
|
||||
<string name="crash_dialog_comment_prompt">Gellir ychwanegu gwybodaeth ychwanegol a sylwadau yma:</string>
|
||||
|
@ -234,7 +234,6 @@
|
||||
<string name="interval_2w">Søg efter opdateringer hver anden uge</string>
|
||||
<string name="theme_light">Lys</string>
|
||||
<string name="theme_dark">Mørk</string>
|
||||
<string name="theme_night">Nat</string>
|
||||
<string name="menu_email">E-mail forfatter</string>
|
||||
<string name="antinonfreeassetslist">Denne app indeholder ikke-frit indhold</string>
|
||||
<string name="empty_search_available_app_list">Ingen matchende apps tilgængelige.</string>
|
||||
|
@ -238,7 +238,6 @@
|
||||
<string name="download_error">Herunterladen fehlgeschlagen!</string>
|
||||
<string name="perms_description_app">Bereitgestellt von %1$s.</string>
|
||||
<string name="downloading">Herunterladen …</string>
|
||||
<string name="theme_night">Nacht</string>
|
||||
<string name="login_title">Legitimierung erforderlich</string>
|
||||
<string name="login_name">Benutzername</string>
|
||||
<string name="login_password">Passwort</string>
|
||||
|
@ -236,7 +236,6 @@
|
||||
<string name="interval_2w">Να γίνεται έλεγχος για ενημερώσεις κάθε 2 εβδομάδες</string>
|
||||
<string name="theme_light">Φωτεινό</string>
|
||||
<string name="theme_dark">Σκοτεινό</string>
|
||||
<string name="theme_night">Νυχτερινό</string>
|
||||
<string name="swap_nfc_title">Αγγίξτε για ανταλλαγή</string>
|
||||
<string name="swap_nfc_description">Αν ο φίλος σας έχει το F-Droid και ενεργοποιημένο το NFC αγγίξτε μεταξύ τους τις
|
||||
συσκευές σας.
|
||||
|
@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="theme_night">Night</string>
|
||||
<string name="theme_dark">Dark</string>
|
||||
<string name="theme_light">Light</string>
|
||||
<string name="status_inserting_apps">Saving app details</string>
|
||||
|
@ -248,7 +248,6 @@
|
||||
<string name="interval_2w">Kontroli pri ĝisdatigoj ĉiu-2-semajne</string>
|
||||
<string name="theme_light">Hela</string>
|
||||
<string name="theme_dark">Malhela</string>
|
||||
<string name="theme_night">Nokta</string>
|
||||
<string name="crash_dialog_title">F-Droid kolapsis</string>
|
||||
<string name="crash_dialog_text">Senatenda eraro okazis kaj devigis aplikaĵon halti. Ĉu vi volas retmesaĝi detalojn
|
||||
por helpi ripari la eraron?
|
||||
|
@ -420,7 +420,6 @@
|
||||
<string name="keep_forever">Siempre</string>
|
||||
<string name="theme_light">Claro</string>
|
||||
<string name="theme_dark">Oscuro</string>
|
||||
<string name="theme_night">Noche</string>
|
||||
<string name="crash_dialog_comment_prompt">Podés añadir información extra y comentarios acá:</string>
|
||||
<plurals name="notification_summary_more">
|
||||
<item quantity="one">+%1$d más…</item>
|
||||
|
@ -86,7 +86,6 @@
|
||||
<string name="updates">Actualizaciones</string>
|
||||
<string name="app_name">F-Droid</string>
|
||||
<string name="notify">Mostrar actualizaciones disponibles</string>
|
||||
<string name="theme_night">Noche</string>
|
||||
<string name="theme_dark">Oscuro</string>
|
||||
<string name="theme_light">Claro</string>
|
||||
<string name="status_inserting_apps">Guardado Detalles de la Aplicacion</string>
|
||||
|
@ -230,7 +230,6 @@
|
||||
<string name="repo_details">Repositorio</string>
|
||||
<string name="repo_url">Dirección</string>
|
||||
<string name="download_error">¡Descarga fallida!</string>
|
||||
<string name="theme_night">Noche</string>
|
||||
<string name="system_install_denied_permissions">¡No se han concedido permisos de sistema a la extensión! ¡Por
|
||||
favor, informa sobre este fallo!
|
||||
</string>
|
||||
|
@ -263,7 +263,6 @@
|
||||
<string name="keep_forever">Igavesti</string>
|
||||
<string name="theme_light">Hele</string>
|
||||
<string name="theme_dark">Tume</string>
|
||||
<string name="theme_night">Öö</string>
|
||||
<string name="crash_dialog_title">F-Droidi tabas krahh</string>
|
||||
<string name="crash_dialog_comment_prompt">Sa saad lisada täiendavat informatsiooni ja kommentaare siia:</string>
|
||||
<string name="swap_join_same_wifi_desc">WiFi kaudu vahetamiseks peate olema samas võrgus. Kui sul puudub ligipääs
|
||||
|
@ -246,7 +246,6 @@
|
||||
\ndeskargatzen\n%1$s(e)tik
|
||||
</string>
|
||||
<string name="permissions">Baimenak</string>
|
||||
<string name="theme_night">Gaua</string>
|
||||
<string name="menu_settings">Ezarpenak</string>
|
||||
<string name="update_auto_download">Deskargatu eguneraketak automatikoki</string>
|
||||
<string name="update_auto_download_summary">Eguneraketak automatikoki deskargatzen dira eta berauek instalatzeko jakinarazten zaizu</string>
|
||||
|
@ -203,7 +203,6 @@
|
||||
<string name="interval_2w">بررسی هر ۲ هفته برای بهروز رسانیها</string>
|
||||
<string name="theme_light">روشن</string>
|
||||
<string name="theme_dark">تاریک</string>
|
||||
<string name="theme_night">شب</string>
|
||||
<string name="malformed_repo_uri">نادیده گرفتن نشانی اینترنتی مخزن ناهنجار: %s</string>
|
||||
<string name="all_other_repos_fine">تمام مخزنهای دیگر خطایی ایجاد نکردند.</string>
|
||||
<string name="repo_not_yet_updated">این مخزن هنوز استفاده نشده است. برای دیدن برنامه هایی که فراهم میکند باید فعّالش کنید.</string>
|
||||
|
@ -139,7 +139,6 @@
|
||||
<string name="interval_1h">Tarkista päivitykset tunnin välein</string>
|
||||
<string name="theme_light">Vaalea</string>
|
||||
<string name="theme_dark">Tumma</string>
|
||||
<string name="theme_night">Musta</string>
|
||||
<string name="uninstall_confirm">Haluatko poistaa tämän sovelluksen?</string>
|
||||
<string name="allPerms">Kaikki</string>
|
||||
<string name="newPerms">Uusi</string>
|
||||
|
@ -238,7 +238,6 @@
|
||||
<string name="more">Plus</string>
|
||||
<string name="less">Moins</string>
|
||||
<string name="permissions">Autorisations</string>
|
||||
<string name="theme_night">Nuit</string>
|
||||
<string name="menu_settings">Paramètres</string>
|
||||
<string name="login_title">Identification requise</string>
|
||||
<string name="login_name">Nom d\'utilisateur</string>
|
||||
|
@ -173,7 +173,6 @@
|
||||
<string name="interval_2w">Procurar actualizacións cada dúas semanas</string>
|
||||
<string name="theme_light">Claro</string>
|
||||
<string name="theme_dark">Escuro</string>
|
||||
<string name="theme_night">Noite</string>
|
||||
<string name="unstable_updates_summary">Suxire actualizacións para versións inestábeis</string>
|
||||
<string name="antiupstreamnonfreelist">O código fonte non é completamente libre</string>
|
||||
<string name="proxy_host">Servidor proxy</string>
|
||||
|
@ -234,7 +234,6 @@
|
||||
<string name="permissions">הרשאות</string>
|
||||
<string name="repo_details">מאגר</string>
|
||||
<string name="repo_url">כתובת</string>
|
||||
<string name="theme_night">לילה</string>
|
||||
<string name="system_install_denied_permissions">ההרשאות המיוחדות לא הוענקו להרחבה! נא לדווח על באג!</string>
|
||||
<string name="login_title">נדרש אימות</string>
|
||||
<string name="login_name">שם משתמש</string>
|
||||
|
@ -46,7 +46,6 @@
|
||||
<string name="overwrite">ऊपर लिखना</string>
|
||||
<string name="theme_light">रोशनी</string>
|
||||
<string name="theme_dark">अंधेरा</string>
|
||||
<string name="theme_night">रात्रि</string>
|
||||
<string name="crash_dialog_title">F-Droid क्रैश हो गया है</string>
|
||||
<string name="crash_dialog_text">एक अप्रत्याशित त्रुटि के कारन एप्लीकेशन बंद हो गयी है| क्या ईमेल भेज कर इस समाधान को सुलझाने में मदद करना चाहते हैं\?</string>
|
||||
<string name="crash_dialog_comment_prompt">आप अन्य जानकारी और टिप्पणियाँ यहाँ लिख सकते हैं:</string>
|
||||
|
@ -269,7 +269,6 @@
|
||||
<string name="keep_forever">Zauvijek</string>
|
||||
<string name="theme_light">Svijetla</string>
|
||||
<string name="theme_dark">Tamna</string>
|
||||
<string name="theme_night">Noćna</string>
|
||||
<string name="crash_dialog_title">F-Droid se srušio</string>
|
||||
<string name="crash_dialog_text">Dogodila se neočekivana greška, aplikacija je prisilno zaustavljena. Želite li poslati detalje kvara putem e-pošte da bismo ga popravili\?</string>
|
||||
<string name="crash_dialog_comment_prompt">Možete dodati dodatne informacije i komentare ovdje:</string>
|
||||
|
@ -178,7 +178,6 @@
|
||||
<string name="interval_2w">Frissítések keresése kéthetente</string>
|
||||
<string name="theme_light">Világos</string>
|
||||
<string name="theme_dark">Sötét</string>
|
||||
<string name="theme_night">Éjszakai</string>
|
||||
<string name="crash_dialog_title">Az F-Droid összeomlott</string>
|
||||
<string name="crash_dialog_text">Egy váratlan hiba következtében az alkalmazásnak le kellett állnia. Szeretné
|
||||
elküldeni e-mailben a részleteket, hogy segítsen a probléma javításában?
|
||||
|
@ -91,7 +91,6 @@
|
||||
<string name="keep_forever">Ընդմիշտ</string>
|
||||
<string name="theme_light">Բաց</string>
|
||||
<string name="theme_dark">Մուգ</string>
|
||||
<string name="theme_night">Գիշեր</string>
|
||||
<string name="notification_title_single_update_available">Թարմացում է հասանելի</string>
|
||||
<string name="notification_title_single_ready_to_install">Պատրաստ է տեղադրման</string>
|
||||
<string name="notification_title_single_ready_to_install_update">Թարմացումը պատրաստ է տեղադրման</string>
|
||||
|
@ -247,7 +247,6 @@
|
||||
<string name="interval_2w">Periksa pembaruan setiap 2 minggu sekali</string>
|
||||
<string name="theme_light">Terang</string>
|
||||
<string name="theme_dark">Gelap</string>
|
||||
<string name="theme_night">Malam</string>
|
||||
<string name="crash_dialog_title">F-Droid telah gagal</string>
|
||||
<string name="crash_dialog_text">Terjadi kesalahan yang tidak terduga yang memaksa aplikasi berhenti. Maukah mengirimkan detail melalui email untuk membantu memperbaiki masalah ini\?</string>
|
||||
<string name="crash_dialog_comment_prompt">Anda bisa menambahkan informasi ekstra dan komentar di sini:</string>
|
||||
|
@ -208,7 +208,6 @@
|
||||
<string name="keep_forever">Að eilífu</string>
|
||||
<string name="theme_light">Ljóst</string>
|
||||
<string name="theme_dark">Dökkt</string>
|
||||
<string name="theme_night">Næturhamur</string>
|
||||
<string name="crash_dialog_title">F-Droid hrundi</string>
|
||||
<string name="crash_dialog_comment_prompt">Þú getur bætt hér við aukaupplýsingum og athugasemdum:</string>
|
||||
<string name="unstable_updates_summary">Stinga upp á uppfærslum í óstöðugar útgáfur</string>
|
||||
|
@ -195,7 +195,6 @@
|
||||
</string>
|
||||
<string name="theme_light">Chiaro</string>
|
||||
<string name="theme_dark">Scuro</string>
|
||||
<string name="theme_night">Notte</string>
|
||||
<string name="permissions">Autorizzazioni</string>
|
||||
<string name="unstable_updates_summary">Suggerisci aggiornamenti a versioni non stabili</string>
|
||||
<string name="login_title">Autenticazione richiesta</string>
|
||||
|
@ -229,7 +229,6 @@
|
||||
\n%2$s
|
||||
\n%1$sから</string>
|
||||
<string name="permissions">権限</string>
|
||||
<string name="theme_night">ナイト</string>
|
||||
<string name="menu_settings">設定</string>
|
||||
<string name="login_title">認証が必要です</string>
|
||||
<string name="login_name">ユーザー名</string>
|
||||
|
@ -147,7 +147,6 @@
|
||||
<string name="proxy_host">Asenneftaɣ Apṛuksi</string>
|
||||
<string name="proxy_port">Tabburt n upṛuksi</string>
|
||||
<string name="status_inserting_apps">Rnu tazmilt i usnas</string>
|
||||
<string name="theme_night">Iḍ</string>
|
||||
<string name="app_name">F-Droid</string>
|
||||
<string name="menu_uninstall">Kkes</string>
|
||||
<string name="preference_manage_installed_apps">Asefrak n isnasen ibedden</string>
|
||||
|
@ -5,7 +5,6 @@
|
||||
<string name="notification_action_install">ಸ್ಥಾಪಿಸಿ</string>
|
||||
<string name="notification_title_summary_install_error">ಸ್ಥಾಪನೆ ವಿಫಲವಾಗಿದೆ</string>
|
||||
<string name="notification_title_summary_installing">ಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ</string>
|
||||
<string name="theme_night">ರಾತ್ರಿ</string>
|
||||
<string name="keep_year">1 ವರ್ಷ</string>
|
||||
<string name="keep_month">1 ತಿಂಗಳು</string>
|
||||
<string name="keep_hour">1 ಗಂಟೆ</string>
|
||||
|
@ -237,7 +237,6 @@
|
||||
<string name="interval_2w">2주마다 업데이트를 확인</string>
|
||||
<string name="theme_light">밝음</string>
|
||||
<string name="theme_dark">어두움</string>
|
||||
<string name="theme_night">야간</string>
|
||||
<string name="update_auto_download">업데이트를 자동으로 얻기</string>
|
||||
<string name="update_auto_download_summary">업데이트를 자동으로 다운로드하고 업데이트의 설치를 알려줍니다</string>
|
||||
<string name="repo_provider">저장소: %s</string>
|
||||
|
@ -340,7 +340,6 @@
|
||||
<string name="status_processing_xml_percent">Apdorojama %2$s / %3$s (%4$d%%) iš %1$s</string>
|
||||
<string name="theme_dark">Tamsus</string>
|
||||
<string name="theme_light">Šviesus</string>
|
||||
<string name="theme_night">Naktinis</string>
|
||||
<string name="enable_proxy_summary">Naudoti HTTP Proxy visiems ryšiams</string>
|
||||
<string name="malformed_repo_uri">Nepaisoma netaisyklingo saugyklos URI: %s</string>
|
||||
<string name="repo_add_mirror">Pridėti tinklavietę</string>
|
||||
|
@ -157,7 +157,6 @@
|
||||
<string name="menu_add_repo">Ново складиште</string>
|
||||
<string name="menu_manage">Складишта</string>
|
||||
<string name="back">Назад</string>
|
||||
<string name="theme_night">Ноќна</string>
|
||||
<string name="theme_dark">Темна</string>
|
||||
<string name="theme_light">Светла</string>
|
||||
<string name="crash_dialog_comment_prompt">Можете да додадете дополнителни информации и коментари овде:</string>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user