正在查看: xDrip+ v04633772025.07.16 应用的 StatsActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: xDrip+ v04633772025.07.16 应用的 StatsActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.eveningoutpost.dexdrip.stats;
import android.content.res.ColorStateList;
import android.os.Bundle;
import android.os.Environment;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.eveningoutpost.dexdrip.models.JoH;
import com.eveningoutpost.dexdrip.models.UserError;
import com.eveningoutpost.dexdrip.utilitymodels.JamorhamShowcaseDrawer;
import com.eveningoutpost.dexdrip.utilitymodels.Pref;
import com.eveningoutpost.dexdrip.utilitymodels.ShotStateStore;
import com.eveningoutpost.dexdrip.utils.ActivityWithMenu;
import com.github.amlcurran.showcaseview.ShowcaseView;
import com.github.amlcurran.showcaseview.targets.ViewTarget;
import java.io.File;
public class StatsActivity extends ActivityWithMenu {
public static int state = 2;
private Button button30d;
private Button button7d;
private Button button90d;
private Button buttonTD;
private Button buttonYTD;
private View decorView;
TextView[] indicationDots;
StatisticsPageAdapter mStatisticsPageAdapter;
ViewPager mViewPager;
MenuItem menuItem;
MenuItem menuItem2;
private String stateString;
@Override
protected void onCreate(Bundle bundle) {
evaluateColors(false);
super.onCreate(bundle);
setContentView(2131492943);
this.decorView = getWindow().getDecorView();
assignButtonNames();
initPagerAndIndicator();
setButtonColors();
registerButtonListeners();
if (JoH.ratelimit("statistics-startup", 5)) {
showStartupInfo();
}
}
private void showStartupInfo() {
if (ShotStateStore.hasShot(8)) {
return;
}
final ViewTarget viewTarget = new ViewTarget(2131296470, this);
JoH.runOnUiThreadDelayed(new Runnable() {
@Override
public void run() {
ShowcaseView build = new ShowcaseView.Builder(this).setTarget(viewTarget).setStyle(2131820768).setContentTitle("Swipe for Different Reports").setContentText("\nSwipe left and right to see different report tabs.\n\nChoose time period for Today, Yesterday, 7 Days etc.\n\nFull screen mode, print colors and Sharing are supported from the butttons and 3 dot menu.").setShowcaseDrawer(new JamorhamShowcaseDrawer(StatsActivity.this.getResources(), StatsActivity.this.getTheme(), 50.0f, 20.0f)).singleShot(8L).build();
build.setBackgroundColor(0);
build.show();
}
}, 3000L);
}
private void assignButtonNames() {
this.buttonTD = (Button) findViewById(2131296472);
this.buttonYTD = (Button) findViewById(2131296473);
this.button7d = (Button) findViewById(2131296470);
this.button30d = (Button) findViewById(2131296469);
this.button90d = (Button) findViewById(2131296471);
}
private void initPagerAndIndicator() {
StatisticsPageAdapter statisticsPageAdapter = new StatisticsPageAdapter(getSupportFragmentManager());
this.mStatisticsPageAdapter = statisticsPageAdapter;
this.indicationDots = new TextView[statisticsPageAdapter.getCount()];
LinearLayout linearLayout = (LinearLayout) findViewById(2131296678);
int i = 0;
while (true) {
TextView[] textViewArr = this.indicationDots;
if (i < textViewArr.length) {
textViewArr[i] = new TextView(this);
this.indicationDots[i].setText("◯");
this.indicationDots[i].setTextSize(12.0f);
linearLayout.addView(this.indicationDots[i], new ViewGroup.LayoutParams(-2, -2));
i++;
} else {
textViewArr[0].setText("⚫");
ViewPager viewPager = (ViewPager) findViewById(2131296832);
this.mViewPager = viewPager;
viewPager.setAdapter(this.mStatisticsPageAdapter);
this.mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrollStateChanged(int i2) {
}
@Override
public void onPageScrolled(int i2, float f, int i3) {
}
@Override
public void onPageSelected(int i2) {
int i3 = 0;
while (true) {
TextView[] textViewArr2 = StatsActivity.this.indicationDots;
if (i3 < textViewArr2.length) {
textViewArr2[i3].setText("◯");
i3++;
} else {
textViewArr2[i2].setText("⚫");
return;
}
}
}
});
this.mViewPager.setCurrentItem(2);
return;
}
}
}
void setButtonColors() {
int i = state;
if (i == 0) {
this.stateString = "Today";
} else if (i == 1) {
this.stateString = "Yesterday";
} else if (i == 2) {
this.stateString = "7 days";
} else if (i == 3) {
this.stateString = "30 days";
} else if (i == 4) {
this.stateString = "90 days";
}
ColorStateList colorStateList = new ColorStateList(new int[][]{new int[0]}, new int[]{-10461088});
this.buttonTD.setBackgroundTintList(colorStateList);
this.buttonYTD.setBackgroundTintList(colorStateList);
this.button7d.setBackgroundTintList(colorStateList);
this.button30d.setBackgroundTintList(colorStateList);
this.button90d.setBackgroundTintList(colorStateList);
ColorStateList colorStateList2 = new ColorStateList(new int[][]{new int[0]}, new int[]{-5636096});
int i2 = state;
if (i2 == 0) {
this.buttonTD.setBackgroundTintList(colorStateList2);
return;
}
if (i2 == 1) {
this.buttonYTD.setBackgroundTintList(colorStateList2);
return;
}
if (i2 == 2) {
this.button7d.setBackgroundTintList(colorStateList2);
} else if (i2 == 3) {
this.button30d.setBackgroundTintList(colorStateList2);
} else {
if (i2 != 4) {
return;
}
this.button90d.setBackgroundTintList(colorStateList2);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(2131558414, menu);
this.menuItem = menu.findItem(2131296340);
this.menuItem2 = menu.findItem(2131296342);
updateMenuChecked();
return super.onCreateOptionsMenu(menu);
}
@Override
public void onWindowFocusChanged(boolean z) {
super.onWindowFocusChanged(z);
if (z) {
fullScreenHandler(false);
}
}
private void updateMenuChecked() {
this.menuItem.setChecked(Pref.getBoolean("show_statistics_full_screen", false));
this.menuItem2.setChecked(Pref.getBoolean("show_statistics_print_color", false));
}
private void evaluateColors(boolean z) {
if (Pref.getBooleanDefaultFalse("show_statistics_print_color")) {
setTheme(2131820875);
} else {
setTheme(2131820551);
}
if (z) {
recreate();
}
}
private void fullScreenHandler(boolean z) {
JoH.goFullScreen(Pref.getBooleanDefaultFalse("show_statistics_full_screen"), this.decorView);
if (!z || Pref.getBooleanDefaultFalse("show_statistics_full_screen")) {
return;
}
recreate();
}
public void toggleStatisticsFullScreenMode(MenuItem menuItem) {
Pref.toggleBoolean("show_statistics_full_screen");
updateMenuChecked();
fullScreenHandler(true);
}
public void toggleStatisticsPrintingMode(MenuItem menuItem) {
Pref.toggleBoolean("show_statistics_print_color");
evaluateColors(true);
updateMenuChecked();
}
public void statisticsDisableFullScreen(View view) {
toggleStatisticsFullScreenMode(null);
}
public void statisticsShare(View view) {
statisticsShare((MenuItem) null);
}
public void statisticsShare(MenuItem menuItem) {
try {
if (checkPermissions()) {
JoH.runOnUiThreadDelayed(new Runnable() {
@Override
public void run() {
View findViewWithTag = StatsActivity.this.getWindow().getDecorView().findViewWithTag(Integer.valueOf(StatsActivity.this.mViewPager.getCurrentItem()));
String str = "xDrip-Screenshot-" + JoH.dateTimeText(JoH.tsl()).replace(" ", "-").replace(":", "-").replace(".", "-") + ".png";
String str2 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath() + "/Screenshots";
JoH.bitmapToFile(JoH.screenShot(findViewWithTag, "xDrip+ Statistics for " + StatsActivity.this.stateString + " @ " + JoH.dateText(JoH.tsl())), str2, str);
JoH.shareImage(this, new File(str2 + "/" + str));
}
}, 250L);
}
} catch (Exception e) {
UserError.Log.e("Statistics", "Got exception sharing statistics: " + e);
JoH.static_toast_long("Got an error: " + e);
}
}
private boolean checkPermissions() {
if (ContextCompat.checkSelfPermission(getApplicationContext(), "android.permission.WRITE_EXTERNAL_STORAGE") == 0) {
return true;
}
ActivityCompat.requestPermissions(this, new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"}, 106);
return false;
}
@Override
public void onRequestPermissionsResult(int i, String[] strArr, int[] iArr) {
super.onRequestPermissionsResult(i, strArr, iArr);
if (i == 106) {
if (iArr[0] == 0) {
statisticsShare((MenuItem) null);
} else {
JoH.static_toast_long(this, "Cannot save screenshot without permission");
}
}
}
private void registerButtonListeners() {
View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
if (view != StatsActivity.this.buttonTD) {
if (view != StatsActivity.this.buttonYTD) {
if (view != StatsActivity.this.button7d) {
if (view != StatsActivity.this.button30d) {
if (view == StatsActivity.this.button90d) {
StatsActivity.state = 4;
}
} else {
StatsActivity.state = 3;
}
} else {
StatsActivity.state = 2;
}
} else {
StatsActivity.state = 1;
}
} else {
StatsActivity.state = 0;
}
UserError.Log.d("DrawStats", "button pressed, invalidating");
StatsActivity.this.mStatisticsPageAdapter.notifyDataSetChanged();
StatsActivity.this.mViewPager.invalidate();
StatsActivity.this.setButtonColors();
}
};
this.buttonTD.setOnClickListener(onClickListener);
this.buttonYTD.setOnClickListener(onClickListener);
this.button7d.setOnClickListener(onClickListener);
this.button30d.setOnClickListener(onClickListener);
this.button90d.setOnClickListener(onClickListener);
}
@Override
public String getMenuName() {
return getString(2131756423);
}
public class StatisticsPageAdapter extends FragmentStatePagerAdapter {
@Override
public int getCount() {
return 3;
}
@Override
public int getItemPosition(Object obj) {
return -2;
}
@Override
public CharSequence getPageTitle(int i) {
return i != 0 ? i != 1 ? "Percentile Chart" : "Range Pi Chart" : "General";
}
public StatisticsPageAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public Fragment getItem(int i) {
if (i == 0) {
return new FirstPageFragment();
}
if (i == 1) {
return new ChartFragment();
}
return new PercentileFragment();
}
}
}