Skip to content

Commit

Permalink
Merge pull request #3 from longluo/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
longluo authored Jul 7, 2022
2 parents 82b85b6 + 9532fab commit b56ddc0
Show file tree
Hide file tree
Showing 29 changed files with 6,117 additions and 36 deletions.
26 changes: 16 additions & 10 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@ on:

jobs:
build:

name: Build Apk
runs-on: ubuntu-latest

steps:
- name: checkout code
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: set up JDK 11
uses: actions/setup-java@v2
uses: actions/setup-java@v3
with:
java-version: '14'
distribution: 'adopt'
Expand All @@ -32,9 +32,10 @@ jobs:
id: build
run: |
pwd
echo -e "\n gradlew assembleRelease \n"
echo -e "\n\n gradlew assembleRelease start... \n\n"
chmod a+x gradlew
./gradlew assembleRelease
echo -e "\n\n"
- name: Get Time
id: time
Expand All @@ -55,15 +56,20 @@ jobs:
tag: release

- name: upload apk
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
if: always()
with:
name: QuickDev.apk
path: |
echo -e "\n show path \n"
pwd
ls -l
${{github.workspace}}/build/app/outputs/apk/release/*.apk
path: ${{ github.workspace }}/build/app/outputs/apk/release/*.apk

- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.run_number }}
release_name: ${{ github.event.repository.name }} ${{ steps.branch-name.outputs.current_branch }} v${{ steps.apkInfo.outputs.versionNum }} ${{ steps.apk.outputs.versionCode }} ${{ steps.time.outputs.time}}

- name: Upload File to Pgyer
id: upload
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
package io.github.longluo.base;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.Lifecycle;
import androidx.viewpager2.widget.ViewPager2;

import java.util.ArrayList;
import java.util.List;

/**
* FragmentStateAdapter 封装
*/
public final class FragmentStateAdapter<F extends Fragment> extends androidx.viewpager2.adapter.FragmentStateAdapter {

/**
* Fragment 集合
*/
private final List<F> mFragmentSet = new ArrayList<>();

/**
* Fragment 标题
*/
private final List<CharSequence> mFragmentTitles = new ArrayList<>();

/**
* 当前显示的Fragment
*/
private F mShowFragment;

/**
* 当前 ViewPager
*/
private ViewPager2 mViewPager;

/**
* 设置成懒加载模式
*/
private boolean mLazyMode = true;

public FragmentStateAdapter(FragmentActivity activity) {
this(activity.getSupportFragmentManager(), activity.getLifecycle());
}

public FragmentStateAdapter(Fragment fragment) {
this(fragment.getChildFragmentManager(), fragment.getLifecycle());
}

public FragmentStateAdapter(FragmentManager manager, Lifecycle lifecycle) {
super(manager, lifecycle);
}

@NonNull
@Override
public Fragment createFragment(int position) {
return mFragmentSet.get(position);
}

public F getItem(int position) {
return mFragmentSet.get(position);
}

@Override
public long getItemId(int position) {
return getItem(position).hashCode();
}

@Override
public int getItemCount() {
return mFragmentSet.size();
}

@Nullable
public CharSequence getPageTitle(int position) {
return mFragmentTitles.get(position);
}

/**
* 添加 Fragment
*/
public void addFragment(F fragment) {
addFragment(fragment, null);
}

public void addFragment(F fragment, CharSequence title) {
mFragmentSet.add(fragment);
mFragmentTitles.add(title);

if (mViewPager == null) {
return;
}

notifyDataSetChanged();
if (mLazyMode) {
mViewPager.setOffscreenPageLimit(getItemCount());
} else {
mViewPager.setOffscreenPageLimit(1);
}
}

/**
* 获取当前的Fragment
*/
public F getShowFragment() {
return mShowFragment;
}

/**
* 获取某个 Fragment 的索引(没有就返回 -1)
*/
public int getFragmentIndex(Class<? extends Fragment> clazz) {
if (clazz == null) {
return -1;
}
for (int i = 0; i < mFragmentSet.size(); i++) {
if (clazz.getName().equals(mFragmentSet.get(i).getClass().getName())) {
return i;
}
}
return -1;
}

/**
* 设置懒加载模式
*/
public void setLazyMode(boolean lazy) {
mLazyMode = lazy;
refreshLazyMode();
}

/**
* 刷新加载模式
*/
private void refreshLazyMode() {
if (mViewPager == null) {
return;
}

if (mLazyMode) {
// 设置成懒加载模式(也就是不限制 Fragment 展示的数量)
mViewPager.setOffscreenPageLimit(getItemCount());
} else {
mViewPager.setOffscreenPageLimit(1);
}
}
}
1 change: 1 addition & 0 deletions DroidBase/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">DroidBase</string>
</resources>
1 change: 1 addition & 0 deletions DroidBase/src/main/res/values/styles.xml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>

<!-- 对话框默认主题 -->
Expand Down
4 changes: 2 additions & 2 deletions DroidUtils/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ android {
defaultConfig {
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName '1.0'
versionCode 2
versionName '1.1'

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Expand Down
16 changes: 16 additions & 0 deletions DroidUtils/src/main/java/io/github/longluo/util/BatteryUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package io.github.longluo.util;

import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;

public class BatteryUtils {

public static int getLevel(Context context) {
IntentFilter iFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, iFilter);

return batteryStatus != null ? batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) : -1;
}
}
Loading

0 comments on commit b56ddc0

Please sign in to comment.