Compare commits
10 Commits
i2p-androi
...
master
Author | SHA1 | Date | |
---|---|---|---|
f2b8b0950a | |||
fa668711bf | |||
f06e0e1ca8 | |||
d25aa29fee | |||
48d9afea41 | |||
da4ed503c8 | |||
78a0a2b5f4 | |||
42202cc4d2 | |||
49f4562bf7 | |||
ca6031ab47 |
22
.github/workflows/github-sync.yml
vendored
22
.github/workflows/github-sync.yml
vendored
@ -1,22 +0,0 @@
|
||||
# File: .github/workflows/github-sync.yml for i2p-hackers/i2p.android.base
|
||||
on:
|
||||
schedule:
|
||||
- cron: "*/5 * * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
repo-sync:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: repo-sync
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
uses: repo-sync/github-sync@v2
|
||||
with:
|
||||
source_repo: "https://i2pgit.org/i2p-hackers/i2p.android.base"
|
||||
source_branch: "master"
|
||||
destination_branch: "master"
|
||||
github_token: ${{ secrets.PAT }}
|
66
.github/workflows/sync.yaml
vendored
Normal file
66
.github/workflows/sync.yaml
vendored
Normal file
@ -0,0 +1,66 @@
|
||||
# GitHub Actions workflow file to sync an external repository to this GitHub mirror.
|
||||
# This file was automatically generated by go-github-sync.
|
||||
#
|
||||
# The workflow does the following:
|
||||
# - Runs on a scheduled basis (and can also be triggered manually)
|
||||
# - Clones the GitHub mirror repository
|
||||
# - Fetches changes from the primary external repository
|
||||
# - Applies those changes to the mirror repository
|
||||
# - Pushes the updated content back to the GitHub mirror
|
||||
#
|
||||
# Authentication is handled by the GITHUB_TOKEN secret provided by GitHub Actions.
|
||||
|
||||
jobs:
|
||||
sync:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Validate Github Actions Environment
|
||||
run: if [ "$GITHUB_ACTIONS" != "true" ]; then echo 'This script must be run in a GitHub Actions environment.'; exit 1; fi
|
||||
- name: Checkout GitHub Mirror
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Configure Git
|
||||
run: |-
|
||||
git config user.name 'GitHub Actions'
|
||||
git config user.email 'actions@github.com'
|
||||
- env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
name: Sync Primary Repository
|
||||
run: |-
|
||||
# Add the primary repository as a remote
|
||||
git remote add primary https://i2pgit.org/I2P_Developers/i2p.android.base.git
|
||||
|
||||
# Fetch the latest changes from the primary repository
|
||||
git fetch primary
|
||||
|
||||
# Check if the primary branch exists in the primary repository
|
||||
if git ls-remote --heads primary master | grep -q master; then
|
||||
echo "Primary branch master found in primary repository"
|
||||
else
|
||||
echo "Error: Primary branch master not found in primary repository"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if we're already on the mirror branch
|
||||
if git rev-parse --verify --quiet master; then
|
||||
git checkout master
|
||||
else
|
||||
# Create the mirror branch if it doesn't exist
|
||||
git checkout -b master
|
||||
fi
|
||||
|
||||
|
||||
# Force-apply all changes from primary, overriding any conflicts
|
||||
echo "Performing force sync from primary/master to master"
|
||||
git reset --hard primary/master
|
||||
|
||||
|
||||
# Push changes back to the mirror repository
|
||||
git push origin master
|
||||
name: Sync Primary Repository to GitHub Mirror
|
||||
"on":
|
||||
push: {}
|
||||
schedule:
|
||||
- cron: 0 * * * *
|
||||
workflow_dispatch: {}
|
21
CHANGELOG
21
CHANGELOG
@ -1,3 +1,24 @@
|
||||
2.9.0
|
||||
* Update I2P Library
|
||||
|
||||
2.8.0
|
||||
* Update I2P Library
|
||||
* Migrate to AndroidX
|
||||
* Migrate to MagicIndicator
|
||||
|
||||
2.7.1
|
||||
* Update I2P Library
|
||||
* Roll back ViewPageIndicator version, fixes crash, causes other issues
|
||||
|
||||
2.7.0
|
||||
* Update I2P Library
|
||||
|
||||
2.6.0
|
||||
* Update I2P Library
|
||||
|
||||
2.5.0
|
||||
* Update I2P Library
|
||||
|
||||
2.4.0
|
||||
* Update I2P Library
|
||||
|
||||
|
28
LICENSE.txt
28
LICENSE.txt
@ -43,8 +43,34 @@ License for the Android App:
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
See the file licenses/LICENSE-Apache2.0.txt
|
||||
|
||||
===================================
|
||||
|
||||
License for the MagicIndicator library:
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2016 hackware1993
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
===================================
|
||||
|
||||
|
||||
See the file licenses/LICENSE-Apache2.0.txt
|
||||
|
@ -1,11 +1,9 @@
|
||||
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;
|
||||
@ -59,7 +57,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);
|
||||
|
@ -8,8 +8,6 @@ import androidx.core.util.Pair;
|
||||
import androidx.core.view.ViewCompat;
|
||||
//import android.support.v7.widget.RecyclerView;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@ -75,7 +73,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 +148,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 +225,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();
|
||||
}
|
||||
}
|
||||
|
@ -120,10 +120,9 @@ public class TunnelListFragment extends Fragment implements
|
||||
@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
|
||||
|
@ -134,10 +134,6 @@ public class TunnelsContainer extends Fragment implements
|
||||
// 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();
|
||||
|
||||
@ -305,19 +301,19 @@ public class TunnelsContainer extends Fragment implements
|
||||
.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);
|
||||
}
|
||||
} 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
|
||||
|
||||
|
@ -2,7 +2,7 @@ package net.i2p.android.preferences.util;
|
||||
|
||||
import android.content.Context;
|
||||
//import android.support.v7.preference.ListPreference;
|
||||
import android.preference.ListPreference;
|
||||
import androidx.preference.ListPreference;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
public class IntListPreference extends ListPreference {
|
||||
|
@ -1,13 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="?android:attr/listPreferredItemHeight">
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<RelativeLayout
|
||||
style="@style/ListItem.TwoLines"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<RelativeLayout style="@style/ListItem.TwoLines">
|
||||
|
||||
<!-- Tunnel status -->
|
||||
<ImageView
|
||||
@ -59,7 +55,5 @@
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:clickable="true"
|
||||
android:focusable="true" />
|
||||
android:background="?attr/selectableItemBackground" />
|
||||
</FrameLayout>
|
||||
|
@ -14,9 +14,9 @@
|
||||
ANDROID_BUILD_SDK_VERSION=34
|
||||
ANDROID_BUILD_TARGET_SDK_VERSION=34
|
||||
GROUP=net.i2p.android
|
||||
I2P_ANDROID_VERSION=2.8.0
|
||||
I2P_ANDROID_VERSION_CODE=4745291
|
||||
I2P_VERSION=2.8.0-1
|
||||
I2P_ANDROID_VERSION=2.9.0
|
||||
I2P_ANDROID_VERSION_CODE=4745294
|
||||
I2P_VERSION=2.9.0-1
|
||||
POM_DEVELOPER_EMAIL=hankhill19580@gmail.com
|
||||
POM_DEVELOPER_ID=idk
|
||||
POM_DEVELOPER_NAME=idk
|
||||
|
Reference in New Issue
Block a user