Compare commits

..

1 Commits

Author SHA1 Message Date
b39ee68c2f 2.5.1 2024-05-16 09:18:57 -04:00
143 changed files with 393 additions and 1918 deletions

View File

@ -1,6 +1,6 @@
[main]
host = https://www.transifex.com
lang_map = pt_BR: pt-rBR, yi: ji, zh_CN: zh, zh_TW: zh-rTW, id: in, ru_RU: ru, sv_SE: sv, tr_TR: tr, uk_UA: uk, he: iw, es_AR: es-rAR
lang_map = pt_BR: pt-rBR, yi: ji, zh_CN: zh, zh_TW: zh-rTW, id: in, ru_RU: ru, sv_SE: sv, tr_TR: tr, uk_UA: uk, he: iw
[o:otf:p:I2P:r:android]
file_filter = app/src/main/res/values-<lang>/strings.xml

View File

@ -76,8 +76,8 @@ app. After doing the Maven release, follow these steps in the i2p.android.base r
the `docker run` step described in `DOCKER.md`
1. Edit `routerjars/local.properties` to use the clean i2p.i2p copy.
2. Pull the latest translations with `tx pull --use-git-timestamps` and commit them. (If you don't have the `tx` command,
do `pip install transifex-client` ). If there are broken translations, exclude them and only them.
2. Pull the latest translations with `tx pull -a -f` and commit them. (If you don't have the `tx` command,
do `pip install transifex-client` )
- If there are any new translations, `mtn add` them, and add them to `app/src/main/res/values/arrays.xml`
(two places, alphabetical order please)
3. Ensure that `signing.properties` contains the details of the release key. If you are using Docker, see

View File

@ -1,16 +1,14 @@
apply plugin: 'com.android.application'
repositories {
mavenLocal()
mavenCentral()
maven { url 'https://jitpack.io' }
jcenter()
}
android {
namespace 'net.i2p.android.router'
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
defaultConfig {
versionCode Integer.parseInt(project.I2P_ANDROID_VERSION_CODE as String)
versionCode 4745282
versionName "$I2P_ANDROID_VERSION"
minSdkVersion 21
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
@ -66,34 +64,28 @@ android {
}
dependencies {
implementation "androidx.appcompat:appcompat:1.5.1"
implementation "androidx.preference:preference:1.2.0"
implementation "androidx.annotation:annotation:1.5.0"
implementation 'androidx.recyclerview:recyclerview:1.0.0'
// Local dependencies
implementation project(':lib:client')
implementation project(':lib:helper')
implementation project(path: ':routerjars', configuration: 'routerjars')
// Android Support Repository dependencies
/*def supportVersion = '28.0.0'
def supportVersion = '28.0.0'
implementation "com.android.support:support-v4:$supportVersion"
implementation "com.android.support:appcompat-v7:$supportVersion"
implementation "com.android.support:preference-v7:$supportVersion"
implementation "com.android.support:preference-v14:$supportVersion"
implementation "com.android.support:recyclerview-v7:$supportVersion"*/
implementation 'com.google.android.material:material:1.9.0'
implementation "com.android.support:recyclerview-v7:$supportVersion"
// Remote dependencies
implementation 'com.androidplot:androidplot-core:1.5.11'
implementation 'com.androidplot:androidplot-core:1.4.1'
implementation 'com.eowise:recyclerview-stickyheaders:0.5.2@aar'
//implementation 'com.inkapplications.viewpageindicator:library:2.4.4'
implementation 'com.github.hackware1993:MagicIndicator:1.7.0' // for androidx
implementation 'com.inkapplications.viewpageindicator:library:2.4.4'
implementation 'com.pnikosis:materialish-progress:1.7'
implementation "net.i2p:router:$I2P_VERSION"
implementation "net.i2p:i2p:$I2P_VERSION"
implementation "net.i2p.client:mstreaming:$I2P_VERSION"
implementation "net.i2p.client:streaming:$I2P_VERSION"
implementation 'net.i2p.android.ext:floatingactionbutton:1.10.1'
implementation 'com.github.SufficientlySecure:html-textview:v3.6'
implementation 'org.sufficientlysecure:html-textview:3.1'
// Testing-only dependencies
androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.2') {
exclude group: 'com.android.support', module: 'support-annotations'
@ -101,30 +93,9 @@ dependencies {
}
dependencies {
implementation "androidx.appcompat:appcompat:1.5.1"
implementation "androidx.preference:preference:1.2.0"
implementation "androidx.annotation:annotation:1.5.0"
implementation 'androidx.test.espresso:espresso-core:3.6.1'
implementation 'androidx.test.ext:junit:1.2.1'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
}
dependencies {
// ...existing code...
// Force consistent lifecycle versions
implementation('androidx.lifecycle:lifecycle-viewmodel:2.5.1')
implementation('androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1')
// Exclude older versions
configurations.all {
resolutionStrategy {
force 'androidx.lifecycle:lifecycle-viewmodel:2.5.1'
force 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
}
}
}
project.ext.i2pbase = "../i2p.i2p"
def Properties props = new Properties()
def propFile = new File(project(':routerjars').projectDir, 'local.properties')

View File

@ -1,43 +1,39 @@
package net.i2p.android;
import androidx.test.core.app.ActivityScenario;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import android.test.ActivityInstrumentationTestCase2;
import net.i2p.android.router.R;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import static androidx.test.espresso.Espresso.closeSoftKeyboard;
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu;
import static androidx.test.espresso.Espresso.pressBack;
import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.action.ViewActions.swipeLeft;
import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.ViewMatchers.hasSibling;
import static androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withParent;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
import static android.support.test.espresso.Espresso.closeSoftKeyboard;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu;
import static android.support.test.espresso.Espresso.pressBack;
import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.action.ViewActions.swipeLeft;
import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.hasSibling;
import static android.support.test.espresso.matcher.ViewMatchers.isDescendantOfA;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withParent;
import static android.support.test.espresso.matcher.ViewMatchers.withText;
import static org.hamcrest.Matchers.allOf;
import static org.hamcrest.Matchers.not;
@RunWith(AndroidJUnit4.class)
public class I2PActivityTest {
private ActivityScenario<I2PActivity> scenario;
@Before
public void setUp() {
scenario = ActivityScenario.launch(I2PActivity.class);
public class I2PActivityTest extends ActivityInstrumentationTestCase2<I2PActivity> {
public I2PActivityTest() {
super(I2PActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
// For each test method invocation, the Activity will not actually be created
// until the first time this method is called.
getActivity();
}
@Test
public void testMainTabs() {
onView(withId(R.id.router_onoff_button)).check(matches(isDisplayed()));
@ -59,7 +55,6 @@ public class I2PActivityTest {
onView(withId(R.id.router_onoff_button)).check(matches(isDisplayed()));
}
@Test
public void testMainSwipe() {
onView(withId(R.id.router_onoff_button)).check(matches(isDisplayed()));
@ -75,10 +70,9 @@ public class I2PActivityTest {
// TODO: test addressbook ViewPager
}
@Test
public void testSettingsNavigation() {
// Open settings menu
openActionBarOverflowOrOptionsMenu(getInstrumentation().getTargetContext());
openActionBarOverflowOrOptionsMenu(getActivity());
onView(withText(R.string.menu_settings)).perform(click());
// Open bandwidth page
@ -112,4 +106,4 @@ public class I2PActivityTest {
pressBack();
onView(withText(R.string.settings_label_advanced)).check(doesNotExist());
}
}
}

View File

@ -11,7 +11,6 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
<!-- following two are for UPnP -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
@ -30,10 +29,7 @@
android:icon="@drawable/ic_launcher_itoopie"
android:enabled="true"
android:exported="true"
android:label="@string/app_name"
android:foregroundServiceType="specialUse">
<property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
android:value="i2p_router_background_process_required_network_operation"/>
android:label="@string/app_name">
<intent-filter>
<action android:name="net.i2p.android.router.service.IRouterState" />
</intent-filter>

View File

@ -1,15 +1,10 @@
//package android.support.v4.view;
package androidx.viewpager.widget;
package android.support.v4.view;
import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
//import android.support.v4.os.ParcelableCompat;
import androidx.core.os.ParcelableCompat;
//import android.support.v4.os.ParcelableCompatCreatorCallbacks;
import androidx.core.os.ParcelableCompatCreatorCallbacks;
import androidx.viewpager.widget.ViewPager;
import android.support.v4.os.ParcelableCompat;
import android.support.v4.os.ParcelableCompatCreatorCallbacks;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.Toast;

View File

@ -2,10 +2,9 @@ package com.pavelsikun.seekbarpreference;
import android.content.Context;
import android.content.res.TypedArray;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
//import android.support.v7.preference.Preference;
import androidx.preference.Preference;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.preference.Preference;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;

View File

@ -4,11 +4,9 @@ import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Build;
import androidx.annotation.NonNull;
//import android.support.v7.preference.Preference;
import androidx.preference.Preference;
//import android.support.v7.preference.PreferenceViewHolder;
import androidx.preference.PreferenceViewHolder;
import android.support.annotation.NonNull;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceViewHolder;
import android.util.AttributeSet;
import net.i2p.android.router.R;

View File

@ -1,20 +1,14 @@
package net.i2p.android;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v4.app.FragmentManager;
import androidx.fragment.app.FragmentManager;
//import android.support.v4.content.LocalBroadcastManager;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
@ -31,7 +25,7 @@ import net.i2p.android.router.service.State;
import net.i2p.android.router.util.Connectivity;
import net.i2p.android.router.util.Util;
import net.i2p.android.util.MemoryFragmentPagerAdapter;
import androidx.viewpager.widget.CustomViewPager;
import android.support.v4.view.CustomViewPager;
import net.i2p.android.widget.SlidingTabLayout;
import net.i2p.router.RouterContext;
@ -59,7 +53,6 @@ public class I2PActivity extends I2PActivityBase implements
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setContentView(R.layout.activity_viewpager);
Toolbar toolbar = (Toolbar) findViewById(R.id.main_toolbar);

View File

@ -6,8 +6,7 @@ import android.content.ServiceConnection;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.IBinder;
//import android.support.v7.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatActivity;
import android.support.v7.app.AppCompatActivity;
import net.i2p.android.router.service.RouterBinder;
import net.i2p.android.router.service.RouterService;

View File

@ -6,7 +6,7 @@ import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import androidx.annotation.NonNull;
import android.support.annotation.NonNull;
import java.util.ArrayList;
import java.util.HashSet;

View File

@ -6,8 +6,7 @@ import android.content.Intent;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.net.Uri;
//import android.support.v7.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View File

@ -1,10 +1,8 @@
package net.i2p.android.help;
import android.os.Bundle;
//import android.support.v7.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatActivity;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import net.i2p.android.router.R;

View File

@ -8,16 +8,11 @@ import android.content.pm.ResolveInfo;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v4.app.LoaderManager;
import androidx.loader.app.LoaderManager;
//import android.support.v4.content.Loader;
import androidx.loader.content.Loader;
//import android.support.v7.widget.LinearLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
//import android.support.v7.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView;
import android.support.v4.app.Fragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View File

@ -2,14 +2,10 @@ package net.i2p.android.help;
import android.content.Intent;
import android.os.Bundle;
//import android.support.v4.app.NavUtils;
import androidx.core.app.NavUtils;
//import android.support.v4.app.TaskStackBuilder;
import androidx.core.app.TaskStackBuilder;
//import android.support.v7.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatActivity;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v4.app.NavUtils;
import android.support.v4.app.TaskStackBuilder;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;

View File

@ -1,8 +1,7 @@
package net.i2p.android.help;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View File

@ -2,8 +2,7 @@ package net.i2p.android.help;
import android.app.Activity;
import android.os.Bundle;
//import android.support.v4.app.ListFragment;
import androidx.fragment.app.ListFragment;
import android.support.v4.app.ListFragment;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

View File

@ -2,10 +2,8 @@ package net.i2p.android.i2ptunnel;
import android.content.Intent;
import android.os.Bundle;
//import android.support.v4.app.ActivityCompat;
import androidx.core.app.ActivityCompat;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v4.app.ActivityCompat;
import android.support.v7.widget.Toolbar;
import android.view.View;
import net.i2p.android.I2PActivityBase;

View File

@ -10,17 +10,12 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import androidx.annotation.NonNull;
//import android.support.v4.app.DialogFragment;
import androidx.fragment.app.DialogFragment;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v4.view.ViewCompat;
import androidx.core.view.ViewCompat;
//import android.support.v7.app.AlertDialog;
import androidx.appcompat.app.AlertDialog;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;

View File

@ -2,14 +2,9 @@ package net.i2p.android.i2ptunnel;
import android.content.Context;
import android.os.Build;
//import android.support.v4.util.Pair;
import androidx.core.util.Pair;
//import android.support.v4.view.ViewCompat;
import androidx.core.view.ViewCompat;
//import android.support.v7.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView;
import android.util.Log;
import android.support.v4.util.Pair;
import android.support.v4.view.ViewCompat;
import android.support.v7.widget.RecyclerView;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
@ -75,7 +70,6 @@ public class TunnelEntryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
public void setTunnels(List<TunnelEntry> tunnels) {
mTunnels = tunnels;
Log.d("TunnelEntryAdapter", "setTunnels: size=" + (tunnels != null ? tunnels.size() : "null"));
notifyDataSetChanged();
}
@ -151,8 +145,6 @@ public class TunnelEntryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
// Replace the contents of a view (invoked by the layout manager)
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
Log.d("TunnelEntryAdapter", "onBindViewHolder: position=" + position +
" viewType=" + holder.getItemViewType());
switch (holder.getItemViewType()) {
case R.string.router_not_running:
((TextView) holder.itemView).setText(
@ -230,11 +222,9 @@ public class TunnelEntryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
// Return the size of the dataset (invoked by the layout manager)
@Override
public int getItemCount() {
if (mTunnels == null || mTunnels.isEmpty()) {
Log.d("TunnelEntryAdapter", "getItemCount: returning 1 for empty/null state");
if (mTunnels == null || mTunnels.isEmpty())
return 1;
}
Log.d("TunnelEntryAdapter", "getItemCount: returning " + mTunnels.size());
return mTunnels.size();
}
}

View File

@ -2,8 +2,7 @@ package net.i2p.android.i2ptunnel;
import android.content.Context;
import android.os.Handler;
//import android.support.v4.content.AsyncTaskLoader;
import androidx.loader.content.AsyncTaskLoader;
import android.support.v4.content.AsyncTaskLoader;
import net.i2p.android.router.util.Util;
import net.i2p.i2ptunnel.TunnelController;

View File

@ -6,20 +6,13 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v4.app.LoaderManager;
import androidx.loader.app.LoaderManager;
//import android.support.v4.content.Loader;
import androidx.loader.content.Loader;
//import android.support.v4.content.LocalBroadcastManager;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
//import android.support.v4.util.Pair;
import androidx.core.util.Pair;
//import android.support.v7.widget.LinearLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
//import android.support.v7.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView;
import android.support.v4.app.Fragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v4.util.Pair;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -64,8 +57,6 @@ public class TunnelListFragment extends Fragment implements
private TunnelEntryAdapter mAdapter;
private boolean mClientTunnels;
private static final String KEY_SELECTED_TUNNEL = "selected_tunnel";
// Container Activity must implement this interface
public interface OnTunnelSelectedListener {
void onTunnelSelected(int tunnelId, Pair<View, String>[] pairs);
@ -109,21 +100,14 @@ public class TunnelListFragment extends Fragment implements
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (savedInstanceState != null) {
int tunnelId = savedInstanceState.getInt(KEY_SELECTED_TUNNEL, -1);
if (tunnelId != -1) {
mCallback.onTunnelSelected(tunnelId, null);
}
}
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//mClientTunnels = getArguments().getBoolean(SHOW_CLIENT_TUNNELS);
mClientTunnels = true;
mClientTunnels = getArguments().getBoolean(SHOW_CLIENT_TUNNELS);
//mRecyclerView.setHasFixedSize(true);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST));
// use a linear layout manager

View File

@ -6,11 +6,9 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.NonNull;
//import android.support.v4.app.DialogFragment;
import androidx.fragment.app.DialogFragment;
//import android.support.v7.app.AlertDialog;
import androidx.appcompat.app.AlertDialog;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import net.i2p.android.router.R;
import net.i2p.android.wizard.model.AbstractWizardModel;

View File

@ -1,25 +1,15 @@
package net.i2p.android.i2ptunnel;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
//import android.support.v4.app.ActivityCompat;
import androidx.core.app.ActivityCompat;
//import android.support.v4.app.ActivityOptionsCompat;
import androidx.core.app.ActivityOptionsCompat;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v4.app.FragmentManager;
import androidx.fragment.app.FragmentManager;
//import android.support.v4.app.FragmentPagerAdapter;
import androidx.fragment.app.FragmentPagerAdapter;
//import android.support.v4.util.Pair;
import androidx.core.util.Pair;
//import android.support.v4.view.ViewPager;
import androidx.viewpager.widget.ViewPager;
import android.util.Log;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.ActivityOptionsCompat;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.util.Pair;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
@ -29,17 +19,7 @@ import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.Toast;
import com.google.android.material.tabs.TabLayout;
import net.lucode.hackware.magicindicator.MagicIndicator;
import net.lucode.hackware.magicindicator.ViewPagerHelper;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorTransitionPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.SimplePagerTitleView;
import androidx.core.content.ContextCompat;
import com.viewpagerindicator.TitlePageIndicator;
import net.i2p.android.i2ptunnel.preferences.EditTunnelContainerFragment;
import net.i2p.android.i2ptunnel.util.TunnelUtil;
@ -72,7 +52,7 @@ public class TunnelsContainer extends Fragment implements
private boolean mTwoPane;
ViewPager mViewPager;
MagicIndicator mPageIndicator;
TitlePageIndicator mPageIndicator;
FragmentPagerAdapter mFragPagerAdapter;
private static final String FRAGMENT_CLIENT = "client_fragment";
@ -101,17 +81,15 @@ public class TunnelsContainer extends Fragment implements
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.container_tunnels, container, false);
mViewPager = v.findViewById(R.id.pager);
mPageIndicator = v.findViewById(R.id.magic_indicator);
mNewTunnel = v.findViewById(R.id.promoted_action);
mViewPager = (ViewPager) v.findViewById(R.id.pager);
mPageIndicator = (TitlePageIndicator) v.findViewById(R.id.page_indicator);
mNewTunnel = (ImageButton) v.findViewById(R.id.promoted_action);
mNewTunnel.setVisibility(showActions() ? View.VISIBLE : View.GONE);
// Initialize ViewPager adapter
mFragPagerAdapter = new TunnelsPagerAdapter(getChildFragmentManager());
mViewPager.setAdapter(mFragPagerAdapter);
if (v.findViewById(R.id.detail_fragment) != null) {
// The detail container view will be present only in the
// large-screen layouts (res/values-w720dp). If this view
// is present, then the activity should be in two-pane mode.
mTwoPane = true;
}
@ -122,26 +100,19 @@ public class TunnelsContainer extends Fragment implements
savedInstanceState, FRAGMENT_SERVER);
}
setupMagicIndicator();
return v;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Initialize ViewPager and adapter
mFragPagerAdapter = new TunnelsPagerAdapter(getChildFragmentManager());
mViewPager.setAdapter(mFragPagerAdapter);
// Make sure the ViewPager has proper height
/*mViewPager.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));*/
setupMagicIndicator();
// Bind the page indicator to the pager.
mPageIndicator.setViewPager(mViewPager);
// Setup New Tunnel button
mNewTunnel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@ -299,25 +270,20 @@ public class TunnelsContainer extends Fragment implements
// In two-pane mode, show the detail view in this activity by
// adding or replacing the detail fragment using a
// fragment transaction.
try {
TunnelDetailFragment detailFrag = TunnelDetailFragment.newInstance(tunnelId);
getChildFragmentManager().beginTransaction()
.replace(R.id.detail_fragment, detailFrag)
.commitNow(); // Use commitNow() to execute synchronously
} catch (Exception e) {
// This exception might occur if the fragment transaction fails due to an invalid state.
// It is handled by logging the error to help with debugging.
Log.e("TunnelsContainer", "Failed to update detail fragment", e);
}
TunnelDetailFragment detailFrag = TunnelDetailFragment.newInstance(tunnelId);
getChildFragmentManager().beginTransaction()
.replace(R.id.detail_fragment, detailFrag).commit();
} else {
// In single-pane mode, simply start the detail activity
// for the selected item ID.
Intent detailIntent = new Intent(getActivity(), TunnelDetailActivity.class);
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(), pairs);
detailIntent.putExtra("tunnel_id", tunnelId);
ActivityCompat.startActivity(getActivity().getApplicationContext(), detailIntent, options.toBundle());
detailIntent.putExtra(TunnelDetailFragment.TUNNEL_ID, tunnelId);
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(
getActivity(), pairs);
ActivityCompat.startActivity(getActivity(), detailIntent, options.toBundle());
}
}
}
// TunnelDetailFragment.TunnelDetailListener
@ -345,54 +311,4 @@ public class TunnelsContainer extends Fragment implements
}
}
}
private void setupMagicIndicator() {
if (mPageIndicator == null || getContext() == null) {
return;
}
CommonNavigator commonNavigator = new CommonNavigator(getContext());
commonNavigator.setAdjustMode(true); // Add this line for better spacing
commonNavigator.setAdapter(new CommonNavigatorAdapter() {
@Override
public int getCount() {
return mFragPagerAdapter.getCount();
}
@Override
public IPagerTitleView getTitleView(Context context, final int index) {
SimplePagerTitleView simplePagerTitleView = new ColorTransitionPagerTitleView(context);
simplePagerTitleView.setText(mFragPagerAdapter.getPageTitle(index));
simplePagerTitleView.setTextSize(16); // Add this line to increase text size
simplePagerTitleView.setNormalColor(ContextCompat.getColor(context,
R.color.primary_text_disabled_material_dark));
simplePagerTitleView.setSelectedColor(ContextCompat.getColor(context,
R.color.primary_text_default_material_dark));
simplePagerTitleView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mViewPager.setCurrentItem(index);
}
});
return simplePagerTitleView;
}
@Override
public IPagerIndicator getIndicator(Context context) {
LinePagerIndicator indicator = new LinePagerIndicator(context);
indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT);
indicator.setColors(ContextCompat.getColor(context, R.color.primary));
indicator.setLineHeight(dpToPx(context, 3));
return indicator;
}
});
mPageIndicator.setNavigator(commonNavigator);
ViewPagerHelper.bind(mPageIndicator, mViewPager);
}
private int dpToPx(Context context, int dp) {
float density = context.getResources().getDisplayMetrics().density;
return Math.round(dp * density);
}
}

View File

@ -3,16 +3,11 @@ package net.i2p.android.i2ptunnel.preferences;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
//import android.support.v7.app.AlertDialog;
import androidx.appcompat.app.AlertDialog;
//import android.support.v7.preference.CheckBoxPreference;
import androidx.preference.CheckBoxPreference;
//import android.support.v7.preference.Preference;
import androidx.preference.Preference;
//import android.support.v7.preference.PreferenceCategory;
import androidx.preference.PreferenceCategory;
//import android.support.v7.preference.PreferenceScreen;
import androidx.preference.PreferenceScreen;
import android.support.v7.app.AlertDialog;
import android.support.v7.preference.CheckBoxPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceCategory;
import android.support.v7.preference.PreferenceScreen;
import net.i2p.android.i2ptunnel.util.TunnelLogic;
import net.i2p.android.i2ptunnel.util.TunnelUtil;

View File

@ -2,12 +2,9 @@ package net.i2p.android.i2ptunnel.preferences;
import android.os.Build;
import android.os.Bundle;
//import android.support.v7.preference.Preference;
import androidx.preference.Preference;
//import android.support.v7.preference.PreferenceGroup;
import androidx.preference.PreferenceGroup;
//import android.support.v7.preference.PreferenceScreen;
import androidx.preference.PreferenceScreen;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceScreen;
import android.widget.Toast;
import net.i2p.android.i2ptunnel.util.SaveTunnelTask;

View File

@ -2,14 +2,10 @@ package net.i2p.android.i2ptunnel.preferences;
import android.content.Intent;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v4.app.FragmentManager;
import androidx.fragment.app.FragmentManager;
//import android.support.v7.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatActivity;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import net.i2p.android.i2ptunnel.TunnelDetailActivity;
import net.i2p.android.i2ptunnel.TunnelDetailFragment;

View File

@ -1,12 +1,9 @@
package net.i2p.android.i2ptunnel.preferences;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v4.app.FragmentManager;
import androidx.fragment.app.FragmentManager;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View File

@ -5,20 +5,13 @@ import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v7.app.AlertDialog;
import androidx.appcompat.app.AlertDialog;
//import android.support.v7.preference.CheckBoxPreference;
import androidx.preference.CheckBoxPreference;
//import android.support.v7.preference.ListPreference;
import androidx.preference.ListPreference;
//import android.support.v7.preference.Preference;
import androidx.preference.Preference;
//import android.support.v7.preference.PreferenceCategory;
import androidx.preference.PreferenceCategory;
//import android.support.v7.preference.PreferenceScreen;
import androidx.preference.PreferenceScreen;
import android.support.v4.app.Fragment;
import android.support.v7.app.AlertDialog;
import android.support.v7.preference.CheckBoxPreference;
import android.support.v7.preference.ListPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceCategory;
import android.support.v7.preference.PreferenceScreen;
import net.i2p.android.i2ptunnel.util.TunnelLogic;
import net.i2p.android.i2ptunnel.util.TunnelUtil;

View File

@ -1,10 +1,8 @@
package net.i2p.android.preferences;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v7.preference.Preference;
import androidx.preference.Preference;
import android.support.v4.app.Fragment;
import android.support.v7.preference.Preference;
import net.i2p.android.router.R;
import net.i2p.android.router.SettingsActivity;

View File

@ -2,14 +2,10 @@ package net.i2p.android.preferences;
import android.content.SharedPreferences;
import android.os.Bundle;
//import android.support.v7.preference.CheckBoxPreference;
import androidx.preference.CheckBoxPreference;
//import android.support.v7.preference.PreferenceCategory;
import androidx.preference.PreferenceCategory;
//import android.support.v7.preference.PreferenceManager;
import androidx.preference.PreferenceManager;
//import android.support.v7.preference.PreferenceScreen;
import androidx.preference.PreferenceScreen;
import android.support.v7.preference.CheckBoxPreference;
import android.support.v7.preference.PreferenceCategory;
import android.support.v7.preference.PreferenceManager;
import android.support.v7.preference.PreferenceScreen;
import net.i2p.android.router.R;
import net.i2p.android.router.SettingsActivity;

View File

@ -1,8 +1,7 @@
package net.i2p.android.preferences;
import android.os.Bundle;
//import android.support.v7.preference.PreferenceScreen;
import androidx.preference.PreferenceScreen;
import android.support.v7.preference.PreferenceScreen;
import net.i2p.android.router.R;
import net.i2p.android.router.SettingsActivity;

View File

@ -4,15 +4,10 @@ import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
//import android.support.v7.preference.CheckBoxPreference;
//import android.support.v7.preference.Preference;
//import android.support.v7.preference.PreferenceManager;
//import android.support.v7.preference.PreferenceScreen;
import androidx.preference.CheckBoxPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
import android.support.v7.preference.CheckBoxPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceManager;
import android.support.v7.preference.PreferenceScreen;
import android.widget.Toast;
import net.i2p.android.router.R;

View File

@ -2,8 +2,7 @@ package net.i2p.android.preferences.util;
import android.content.Context;
import android.content.res.TypedArray;
//import android.support.v7.preference.EditTextPreference;
import androidx.preference.EditTextPreference;
import android.support.v7.preference.EditTextPreference;
import android.util.AttributeSet;
import net.i2p.android.router.R;

View File

@ -1,8 +1,7 @@
package net.i2p.android.preferences.util;
import android.os.Bundle;
//import android.support.v7.preference.EditTextPreferenceDialogFragmentCompat;
import androidx.preference.EditTextPreferenceDialogFragmentCompat;
import android.support.v7.preference.EditTextPreferenceDialogFragmentCompat;
import android.text.InputType;
import android.view.View;
import android.widget.EditText;

View File

@ -1,9 +1,8 @@
package net.i2p.android.preferences.util;
//import android.support.v4.app.DialogFragment;
import androidx.fragment.app.DialogFragment;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import android.support.v4.app.DialogFragment;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceFragmentCompat;
/**
* Handles custom Preferences.

View File

@ -1,8 +1,7 @@
package net.i2p.android.preferences.util;
import android.content.Context;
//import android.support.v7.preference.EditTextPreference;
import androidx.preference.EditTextPreference;
import android.support.v7.preference.EditTextPreference;
import android.util.AttributeSet;
public class IntEditTextPreference extends EditTextPreference {

View File

@ -1,8 +1,7 @@
package net.i2p.android.preferences.util;
import android.os.Bundle;
//import android.support.v7.preference.EditTextPreferenceDialogFragmentCompat;
import androidx.preference.EditTextPreferenceDialogFragmentCompat;
import android.support.v7.preference.EditTextPreferenceDialogFragmentCompat;
import android.text.InputType;
import android.view.View;
import android.widget.EditText;

View File

@ -1,8 +1,7 @@
package net.i2p.android.preferences.util;
import android.content.Context;
//import android.support.v7.preference.ListPreference;
import android.preference.ListPreference;
import android.support.v7.preference.ListPreference;
import android.util.AttributeSet;
public class IntListPreference extends ListPreference {

View File

@ -1,8 +1,7 @@
package net.i2p.android.preferences.util;
import android.content.Context;
//import android.support.v7.preference.EditTextPreference;
import androidx.preference.EditTextPreference;
import android.support.v7.preference.EditTextPreference;
import android.util.AttributeSet;
import net.i2p.android.router.R;

View File

@ -1,8 +1,7 @@
package net.i2p.android.preferences.util;
import android.os.Bundle;
//import android.support.v7.preference.EditTextPreferenceDialogFragmentCompat;
import androidx.preference.EditTextPreferenceDialogFragmentCompat;
import android.support.v7.preference.EditTextPreferenceDialogFragmentCompat;
import android.text.InputType;
import android.view.View;
import android.widget.EditText;

View File

@ -1,8 +1,7 @@
package net.i2p.android.preferences.util;
import android.content.Context;
//import android.support.v7.preference.EditTextPreference;
import android.preference.EditTextPreference;
import android.support.v7.preference.EditTextPreference;
import android.util.AttributeSet;
public class SummaryEditTextPreference extends EditTextPreference {

View File

@ -3,8 +3,7 @@ package net.i2p.android.router;
import android.content.Intent;
import android.os.Bundle;
import android.preference.PreferenceManager;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;

View File

@ -1,8 +1,7 @@
package net.i2p.android.router;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;
import net.i2p.android.router.util.Util;
import net.i2p.router.CommSystemFacade;

View File

@ -1,8 +1,7 @@
package net.i2p.android.router;
import android.os.Bundle;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v7.widget.Toolbar;
import net.i2p.android.I2PActivityBase;

View File

@ -1,8 +1,7 @@
package net.i2p.android.router;
import android.os.Bundle;
//import android.support.v4.app.ListFragment;
import androidx.fragment.app.ListFragment;
import android.support.v4.app.ListFragment;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

View File

@ -14,10 +14,8 @@ import android.os.Handler;
import android.os.PowerManager;
import android.preference.PreferenceManager;
import android.provider.Settings;
//import android.support.v4.content.LocalBroadcastManager;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
//import android.support.v7.app.AlertDialog;
import androidx.appcompat.app.AlertDialog;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AlertDialog;
import android.util.AndroidRuntimeException;
import android.view.Gravity;
import android.view.LayoutInflater;

View File

@ -1,8 +1,7 @@
package net.i2p.android.router;
import android.os.Bundle;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v7.widget.Toolbar;
import net.i2p.android.I2PActivityBase;

View File

@ -3,20 +3,13 @@ package net.i2p.android.router;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v4.app.FragmentManager;
import androidx.fragment.app.FragmentManager;
//import android.support.v4.content.LocalBroadcastManager;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
//import android.support.v7.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatActivity;
//import android.support.v7.preference.Preference;
import androidx.preference.Preference;
//import android.support.v7.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceFragmentCompat;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceFragmentCompat;
import android.support.v7.widget.Toolbar;
import net.i2p.android.I2PActivity;
import net.i2p.android.preferences.AdvancedPreferenceFragment;

View File

@ -1,9 +1,8 @@
package net.i2p.android.router.addressbook;
import android.content.Context;
import androidx.annotation.NonNull;
//import android.support.v7.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View File

@ -1,8 +1,7 @@
package net.i2p.android.router.addressbook;
import android.content.Context;
//import android.support.v4.content.AsyncTaskLoader;
import androidx.loader.content.AsyncTaskLoader;
import android.support.v4.content.AsyncTaskLoader;
import net.i2p.android.router.util.NamingServiceUtil;
import net.i2p.android.router.util.Util;

View File

@ -6,11 +6,9 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.NonNull;
//import android.support.v4.app.DialogFragment;
import androidx.fragment.app.DialogFragment;
//import android.support.v7.app.AlertDialog;
import androidx.appcompat.app.AlertDialog;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import net.i2p.android.wizard.model.AbstractWizardModel;
import net.i2p.android.wizard.ui.AbstractWizardActivity;

View File

@ -6,21 +6,13 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
//import android.support.v4.app.FragmentManager;
import androidx.fragment.app.FragmentManager;
//import android.support.v4.app.FragmentPagerAdapter;
import androidx.fragment.app.FragmentPagerAdapter;
//import android.support.v4.app.FragmentTransaction;
import androidx.fragment.app.FragmentTransaction;
//import android.support.v4.view.MenuItemCompat;
import androidx.core.view.MenuItemCompat;
//import android.support.v4.view.ViewPager;
import androidx.viewpager.widget.ViewPager;
//import android.support.v7.widget.SearchView;
import androidx.appcompat.widget.SearchView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.MenuItemCompat;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.SearchView;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
@ -28,27 +20,18 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import net.lucode.hackware.magicindicator.MagicIndicator;
import net.lucode.hackware.magicindicator.ViewPagerHelper;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator;
import com.viewpagerindicator.TitlePageIndicator;
import net.i2p.android.router.R;
import net.i2p.android.router.util.NamingServiceUtil;
import net.i2p.android.router.util.Util;
import net.i2p.client.naming.NamingService;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorTransitionPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.SimplePagerTitleView;
public class AddressbookContainer extends Fragment
implements AddressbookFragment.OnAddressSelectedListener,
SearchView.OnQueryTextListener {
public static final int ADD_WIZARD_REQUEST = 1;
public static final String ADD_WIZARD_DATA = "add_wizard_data";
private MagicIndicator mPageIndicator;
/**
* Whether or not the container is in two-pane mode, i.e. running on a tablet
@ -58,6 +41,7 @@ public class AddressbookContainer extends Fragment
ViewPager mViewPager;
FragmentPagerAdapter mFragPagerAdapter;
private static final String FRAGMENT_ROUTER = "router_fragment";
private static final String FRAGMENT_PRIVATE = "private_fragment";
private static final int FRAGMENT_ID_ROUTER = 0;
@ -82,17 +66,6 @@ public class AddressbookContainer extends Fragment
// activity should be in two-pane mode.
mTwoPane = true;
}
if (!mTwoPane) {
// Initialize ViewPager and adapter first
mViewPager = (ViewPager) v.findViewById(R.id.pager);
mFragPagerAdapter = new AddressbookPagerAdapter(getActivity(), getChildFragmentManager());
mViewPager.setAdapter(mFragPagerAdapter);
// Then set up MagicIndicator
mPageIndicator = v.findViewById(R.id.magic_indicator);
setupMagicIndicator();
}
if (savedInstanceState != null) {
mRouterFrag = (AddressbookFragment) getChildFragmentManager().getFragment(
@ -117,6 +90,14 @@ public class AddressbookContainer extends Fragment
ft.commit();
}
if (!mTwoPane) {
mViewPager = (ViewPager) v.findViewById(R.id.pager);
TitlePageIndicator pageIndicator = (TitlePageIndicator) v.findViewById(R.id.page_indicator);
mFragPagerAdapter = new AddressbookPagerAdapter(getActivity(), getChildFragmentManager());
mViewPager.setAdapter(mFragPagerAdapter);
pageIndicator.setViewPager(mViewPager);
}
return v;
}
@ -269,38 +250,4 @@ public class AddressbookContainer extends Fragment
if (mPrivateFrag != null)
mPrivateFrag.filterAddresses(query);
}
private void setupMagicIndicator() {
if (mPageIndicator == null || mFragPagerAdapter == null || mViewPager == null) {
return;
}
CommonNavigator commonNavigator = new CommonNavigator(getContext());
commonNavigator.setAdapter(new CommonNavigatorAdapter() {
@Override
public int getCount() {
return mFragPagerAdapter.getCount();
}
@Override
public IPagerTitleView getTitleView(Context context, int index) {
SimplePagerTitleView titleView = new ColorTransitionPagerTitleView(context);
titleView.setText(mFragPagerAdapter.getPageTitle(index));
titleView.setNormalColor(ContextCompat.getColor(context, R.color.primary_text_disabled_material_dark));
titleView.setSelectedColor(ContextCompat.getColor(context, R.color.primary_text_default_material_dark));
titleView.setOnClickListener(v -> mViewPager.setCurrentItem(index));
return titleView;
}
@Override
public IPagerIndicator getIndicator(Context context) {
LinePagerIndicator indicator = new LinePagerIndicator(context);
indicator.setColors(ContextCompat.getColor(context, R.color.primary));
return indicator;
}
});
mPageIndicator.setNavigator(commonNavigator);
ViewPagerHelper.bind(mPageIndicator, mViewPager);
}
}

View File

@ -6,18 +6,12 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v4.app.LoaderManager;
import androidx.loader.app.LoaderManager;
//import android.support.v4.content.Loader;
import androidx.loader.content.Loader;
//import android.support.v4.content.LocalBroadcastManager;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
//import android.support.v7.widget.LinearLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
//import android.support.v7.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView;
import android.support.v4.app.Fragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.Menu;

View File

@ -2,10 +2,8 @@ package net.i2p.android.router.addressbook;
import android.content.Context;
import android.os.Bundle;
//import android.support.v7.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatActivity;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

View File

@ -4,11 +4,9 @@ import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.NonNull;
//import android.support.v4.app.DialogFragment;
import androidx.fragment.app.DialogFragment;
//import android.support.v7.app.AlertDialog;
import androidx.appcompat.app.AlertDialog;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.text.util.Linkify;
import android.view.LayoutInflater;
import android.view.View;

View File

@ -7,11 +7,9 @@ import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
import androidx.annotation.NonNull;
//import android.support.v4.app.DialogFragment;
import androidx.fragment.app.DialogFragment;
//import android.support.v7.app.AlertDialog;
import androidx.appcompat.app.AlertDialog;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.text.util.Linkify;
import android.view.LayoutInflater;
import android.view.View;

View File

@ -4,11 +4,9 @@ import android.app.Dialog;
import android.content.DialogInterface;
import android.content.res.Resources;
import android.os.Bundle;
import androidx.annotation.NonNull;
//import android.support.v4.app.DialogFragment;
import androidx.fragment.app.DialogFragment;
//import android.support.v7.app.AlertDialog;
import androidx.appcompat.app.AlertDialog;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;

View File

@ -3,11 +3,9 @@ package net.i2p.android.router.dialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import androidx.annotation.NonNull;
//import android.support.v4.app.DialogFragment;
import androidx.fragment.app.DialogFragment;
//import android.support.v7.app.AlertDialog;
import androidx.appcompat.app.AlertDialog;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import net.i2p.android.I2PActivityBase;
import net.i2p.android.router.MainFragment;

View File

@ -3,8 +3,7 @@ package net.i2p.android.router.log;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

View File

@ -1,8 +1,7 @@
package net.i2p.android.router.log;
import android.os.Bundle;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v7.widget.Toolbar;
import net.i2p.android.I2PActivityBase;
import net.i2p.android.router.R;

View File

@ -4,12 +4,9 @@ import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
//import android.support.v4.app.ListFragment;
import androidx.fragment.app.ListFragment;
//import android.support.v4.app.LoaderManager;
import androidx.loader.app.LoaderManager;
//import android.support.v4.content.Loader;
import androidx.loader.content.Loader;
import android.support.v4.app.ListFragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

View File

@ -1,8 +1,7 @@
package net.i2p.android.router.log;
import android.content.Context;
//import android.support.v4.content.AsyncTaskLoader;
import androidx.loader.content.AsyncTaskLoader;
import android.support.v4.content.AsyncTaskLoader;
import net.i2p.I2PAppContext;

View File

@ -2,10 +2,8 @@ package net.i2p.android.router.netdb;
import android.content.Intent;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v4.app.Fragment;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;

View File

@ -2,8 +2,7 @@ package net.i2p.android.router.netdb;
import android.content.Intent;
import android.os.Bundle;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v7.widget.Toolbar;
import net.i2p.android.I2PActivityBase;
import net.i2p.android.router.R;

View File

@ -1,8 +1,7 @@
package net.i2p.android.router.netdb;
import android.content.Context;
//import android.support.v4.content.AsyncTaskLoader;
import androidx.loader.content.AsyncTaskLoader;
import android.support.v4.content.AsyncTaskLoader;
import net.i2p.android.router.util.Util;
import net.i2p.data.Destination;

View File

@ -2,12 +2,9 @@ package net.i2p.android.router.netdb;
import android.app.Activity;
import android.os.Bundle;
//import android.support.v4.app.ListFragment;
import androidx.fragment.app.ListFragment;
//import android.support.v4.app.LoaderManager;
import androidx.loader.app.LoaderManager;
//import android.support.v4.content.Loader;
import androidx.loader.content.Loader;
import android.support.v4.app.ListFragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

View File

@ -1,8 +1,7 @@
package net.i2p.android.router.netdb;
import android.content.Context;
//import android.support.v4.content.AsyncTaskLoader;
import androidx.loader.content.AsyncTaskLoader;
import android.support.v4.content.AsyncTaskLoader;
import net.i2p.android.router.R;
import net.i2p.data.Hash;

View File

@ -1,18 +1,12 @@
package net.i2p.android.router.netdb;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v4.app.FragmentManager;
import androidx.fragment.app.FragmentManager;
//import android.support.v4.app.FragmentStatePagerAdapter;
import androidx.fragment.app.FragmentStatePagerAdapter;
//import android.support.v4.app.LoaderManager;
import androidx.loader.app.LoaderManager;
//import android.support.v4.content.Loader;
import androidx.loader.content.Loader;
//import android.support.v4.view.ViewPager;
import androidx.viewpager.widget.ViewPager;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;

View File

@ -1,8 +1,7 @@
package net.i2p.android.router.netdb;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View File

@ -4,10 +4,7 @@ import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import java.util.concurrent.CountDownLatch;
import androidx.appcompat.app.AppCompatActivity;
import android.support.v7.app.AppCompatActivity;
import net.i2p.android.I2PActivity;
import net.i2p.android.I2PActivityBase;
@ -25,7 +22,6 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
/**
* Implements SAMSecureSessionInterface on Android platforms using a Toast
* as the interactive channel.
@ -49,35 +45,12 @@ public class AndroidSAMSecureSession extends AppCompatActivity implements SAMSec
results.put(clientId, 1);
}
private AndroidSAMSecureSession(Context ctx, RouterService rCtx, StatusBar statusBar) {
public AndroidSAMSecureSession(Context ctx, RouterService rCtx, StatusBar statusBar) {
mCtx = ctx;
_routerService = rCtx;
_statusBar = statusBar;
}
public static AndroidSAMSecureSession create(Context ctx, RouterService rCtx, StatusBar statusBar) {
if (Looper.getMainLooper().getThread() == Thread.currentThread()) {
// We're on the main thread, create directly
return new AndroidSAMSecureSession(ctx, rCtx, statusBar);
} else {
// We're not on the main thread, post to main thread
final AndroidSAMSecureSession[] result = new AndroidSAMSecureSession[1];
final CountDownLatch latch = new CountDownLatch(1);
new Handler(Looper.getMainLooper()).post(() -> {
result[0] = new AndroidSAMSecureSession(ctx, rCtx, statusBar);
latch.countDown();
});
try {
latch.await();
return result[0];
} catch (InterruptedException e) {
throw new RuntimeException("Failed to create AndroidSAMSecureSession", e);
}
}
}
private void waitForResult(String clientId) {
for (int i=0;i<60;i++) {
try {

View File

@ -180,8 +180,7 @@ class LoadClientsJob extends JobImpl {
try {
Util.i("Starting the SAM API");
Looper.prepare();
//AndroidSAMSecureSession _androidSecureSession = new AndroidSAMSecureSession(mCtx, _routerService, _statusBar);
AndroidSAMSecureSession _androidSecureSession = AndroidSAMSecureSession.create(mCtx, _routerService, _statusBar);
AndroidSAMSecureSession _androidSecureSession = new AndroidSAMSecureSession(mCtx, _routerService, _statusBar);
SAMSecureSessionInterface _secureSession = _androidSecureSession;
SAM_BRIDGE = new SAMBridge("127.0.0.1",
7656,

View File

@ -1,7 +1,5 @@
package net.i2p.android.router.service;
import static android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
@ -14,8 +12,7 @@ import android.os.IBinder;
import android.os.Message;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
//import android.support.v4.content.LocalBroadcastManager;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import android.support.v4.content.LocalBroadcastManager;
import net.i2p.android.router.R;
import net.i2p.android.router.receiver.I2PReceiver;
@ -176,18 +173,11 @@ public class RouterService extends Service {
// We need to *not* check if we're restarting on Android greater than Oreo due to
// changes in how notifications work and the use of NotificationChannels.
if(!restart) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
startForeground(1337, _statusBar.getNote(), FOREGROUND_SERVICE_TYPE_SPECIAL_USE);
} else {
startForeground(1337, _statusBar.getNote());
}
startForeground(1337, _statusBar.getNote());
} else {
if (Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
startForeground(1337, _statusBar.getNote());
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
startForeground(1337, _statusBar.getNote(), FOREGROUND_SERVICE_TYPE_SPECIAL_USE);
}
}

View File

@ -7,8 +7,7 @@ import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
//import android.support.v4.app.NotificationCompat;
import androidx.core.app.NotificationCompat;
import android.support.v4.app.NotificationCompat;
import android.view.Gravity;
import android.widget.Toast;
@ -141,7 +140,6 @@ class StatusBar {
mNotificationManager.createNotificationChannel(mNotificationChannel);
mNotificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
mNotifyBuilder.setChannelId(NOTIFICATION_CHANNEL_ID);
//
}
mNotif = mNotifyBuilder.build();
mNotificationManager.notify(ID, mNotif);

View File

@ -1,8 +1,7 @@
package net.i2p.android.router.stats;
import android.os.Bundle;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v7.widget.Toolbar;
import net.i2p.android.I2PActivityBase;
import net.i2p.android.router.R;

View File

@ -3,10 +3,8 @@ package net.i2p.android.router.stats;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
//import android.support.v7.app.AlertDialog;
import androidx.appcompat.app.AlertDialog;
//import android.support.v7.widget.Toolbar;
import androidx.appcompat.widget.Toolbar;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;

View File

@ -3,7 +3,7 @@ package net.i2p.android.router.stats;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import androidx.annotation.NonNull;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View File

@ -1,8 +1,7 @@
package net.i2p.android.router.util;
import android.content.Context;
//import android.support.v4.content.AsyncTaskLoader;
import androidx.loader.content.AsyncTaskLoader;
import android.support.v4.content.AsyncTaskLoader;
public abstract class BetterAsyncTaskLoader<T> extends AsyncTaskLoader<T> {
protected T mData;

View File

@ -8,8 +8,7 @@ import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
//import android.support.v4.app.NotificationCompat;
import androidx.core.app.NotificationCompat;
import android.support.v4.app.NotificationCompat;
public class Notifications {
private final Context mCtx;

View File

@ -6,8 +6,7 @@ import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.AsyncTask;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;
import android.view.Gravity;
import android.view.View;
import android.webkit.HttpAuthHandler;

View File

@ -1,8 +1,7 @@
package net.i2p.android.util;
import androidx.annotation.NonNull;
//import android.support.v7.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View File

@ -1,9 +1,7 @@
package net.i2p.android.util;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v4.app.FragmentActivity;
import androidx.fragment.app.FragmentActivity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
public class FragmentUtils {
public interface TwoPaneProvider {

View File

@ -1,11 +1,8 @@
package net.i2p.android.util;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v4.app.FragmentManager;
import androidx.fragment.app.FragmentManager;
//import android.support.v4.app.FragmentPagerAdapter;
import androidx.fragment.app.FragmentPagerAdapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.util.SparseArray;
import android.view.ViewGroup;

View File

@ -21,10 +21,8 @@ import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
//import android.support.v7.widget.LinearLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
//import android.support.v7.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
public class DividerItemDecoration extends RecyclerView.ItemDecoration {

View File

@ -23,8 +23,7 @@ import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.NinePatchDrawable;
//import android.support.v4.view.ViewCompat;
import androidx.core.view.ViewCompat;
import android.support.v4.view.ViewCompat;
import android.util.AttributeSet;
import android.widget.FrameLayout;

View File

@ -1,8 +1,7 @@
package net.i2p.android.widget;
import android.content.Context;
//import android.support.v7.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView;
import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
import android.view.View;

View File

@ -19,10 +19,8 @@ package net.i2p.android.widget;
import android.content.Context;
import android.graphics.Typeface;
import android.os.Build;
//import android.support.v4.view.PagerAdapter;
import androidx.viewpager.widget.PagerAdapter;
//import android.support.v4.view.ViewPager;
import androidx.viewpager.widget.ViewPager;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.util.SparseArray;
import android.util.TypedValue;

View File

@ -18,8 +18,7 @@ package net.i2p.android.wizard.model;
import net.i2p.android.wizard.ui.SingleChoiceFragment;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import java.util.ArrayList;

View File

@ -2,8 +2,7 @@ package net.i2p.android.wizard.model;
import java.util.Locale;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;
import net.i2p.I2PAppContext;
import net.i2p.android.wizard.ui.I2PDestinationFragment;

View File

@ -18,8 +18,7 @@ package net.i2p.android.wizard.model;
import net.i2p.android.wizard.ui.MultipleChoiceFragment;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;
import java.util.ArrayList;

View File

@ -18,8 +18,7 @@
package net.i2p.android.wizard.model;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;
import java.util.ArrayList;
import java.util.List;

View File

@ -20,8 +20,7 @@ import java.util.ArrayList;
import net.i2p.android.wizard.ui.SingleBooleanFragment;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;
public class SingleFixedBooleanPage extends Page {
protected String mDesc = "";

View File

@ -18,8 +18,7 @@ package net.i2p.android.wizard.model;
import net.i2p.android.wizard.ui.SingleChoiceFragment;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import java.util.ArrayList;

View File

@ -18,8 +18,7 @@ package net.i2p.android.wizard.model;
import net.i2p.android.wizard.ui.SingleTextFieldFragment;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import java.util.ArrayList;

View File

@ -1,18 +1,12 @@
package net.i2p.android.wizard.ui;
import android.os.Bundle;
//import android.support.v4.app.DialogFragment;
import androidx.fragment.app.DialogFragment;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
//import android.support.v4.app.FragmentActivity;
import androidx.fragment.app.FragmentActivity;
//import android.support.v4.app.FragmentManager;
import androidx.fragment.app.FragmentManager;
//import android.support.v4.app.FragmentStatePagerAdapter;
import androidx.fragment.app.FragmentStatePagerAdapter;
//import android.support.v4.view.ViewPager;
import androidx.viewpager.widget.ViewPager;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;

View File

@ -21,8 +21,7 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;

View File

@ -20,8 +20,7 @@ package net.i2p.android.wizard.ui;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
//import android.support.v4.app.ListFragment;
import androidx.fragment.app.ListFragment;
import android.support.v4.app.ListFragment;
import android.util.SparseBooleanArray;
import android.view.LayoutInflater;
import android.view.View;

View File

@ -25,10 +25,7 @@ import net.i2p.android.wizard.model.ReviewItem;
import android.app.Activity;
import android.os.Bundle;
//import android.support.v4.app.ListFragment;
import androidx.fragment.app.ListFragment;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.ListFragment;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;

View File

@ -18,8 +18,7 @@ package net.i2p.android.wizard.ui;
import android.app.Activity;
import android.os.Bundle;
//import android.support.v4.app.Fragment;
import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

View File

@ -24,8 +24,7 @@ import net.i2p.android.wizard.model.SingleFixedChoicePage;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
//import android.support.v4.app.ListFragment;
import androidx.fragment.app.ListFragment;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

Some files were not shown because too many files have changed in this diff Show More