123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- package epson.print.inkrpln;
- import android.content.Context;
- import android.net.Uri;
- import android.os.Build;
- import android.support.annotation.NonNull;
- import android.support.annotation.Nullable;
- import android.util.Base64;
- import com.epson.mobilephone.common.escpr.EPS_REDYINKINFO;
- import com.epson.mobilephone.common.wifidirect.WiFiDirectManager;
- import epson.common.Utils;
- import epson.print.R;
- import epson.print.inkrpln.GoEpsonClient;
- import epson.print.inkrpln.InkRplnInfoClient;
- import java.io.IOException;
- import java.nio.charset.Charset;
- import java.util.Arrays;
- import java.util.Locale;
- import org.apache.commons.lang.CharEncoding;
- public class InkReplenishSystem {
- private static InkReplenishSystem sInkReplenishSystem;
- private GoEpsonClient mGoEpsonClient;
- private InkRplnInfoClient mInkRsInfoClient;
- private InkRplnRepository mIrsRepository;
- private PrinterAdapter mPrinterAdapter;
- @VisibleForTesting
- InkReplenishSystem(PrinterAdapter printerAdapter, InkRplnRepository inkRplnRepository, GoEpsonClient goEpsonClient, InkRplnInfoClient inkRplnInfoClient) {
- this.mPrinterAdapter = printerAdapter;
- this.mIrsRepository = inkRplnRepository;
- this.mGoEpsonClient = goEpsonClient;
- this.mInkRsInfoClient = inkRplnInfoClient;
- }
- public InkReplenishSystem(PrinterAdapter printerAdapter, InkRplnRepository inkRplnRepository) {
- this.mPrinterAdapter = printerAdapter;
- this.mIrsRepository = inkRplnRepository;
- this.mGoEpsonClient = new GoEpsonClient();
- this.mInkRsInfoClient = new InkRplnInfoClient();
- }
- /* access modifiers changed from: package-private */
- @VisibleForTesting
- @NonNull
- public GoEpsonClient.ReadyInkParams getGoEpsonParams(@NonNull Context context) {
- GoEpsonClient.ReadyInkParams readyInkParams = new GoEpsonClient.ReadyInkParams();
- Locale locale = Locale.getDefault();
- readyInkParams.country = locale.getCountry();
- readyInkParams.language = locale.getLanguage();
- readyInkParams.printerSerial = this.mPrinterAdapter.getSerialNo(context);
- readyInkParams.printerName = this.mPrinterAdapter.getNonRemotePrinterDeviceId(context);
- readyInkParams.androidModel = Build.MODEL;
- return readyInkParams;
- }
- public synchronized boolean tryRecordPrinterInfoFromServer(@NonNull Context context) throws IOException {
- clearServerReplyPrinterInfo(context);
- if (!isInSupportedArea()) {
- return false;
- }
- if (!checkPrinterAndNetworkConnectivity(context)) {
- return false;
- }
- String serialNo = this.mPrinterAdapter.getSerialNo(context);
- if (serialNo == null) {
- return false;
- }
- EPS_REDYINKINFO readyInkInfo = this.mPrinterAdapter.getReadyInkInfo();
- if (readyInkInfo == null) {
- return false;
- }
- if (readyInkInfo.subscriptionStatus != 0) {
- this.mIrsRepository.saveBuyInkButtonOffReadyInkOff(context);
- return false;
- }
- String redirectLocation = this.mGoEpsonClient.getRedirectLocation(getGoEpsonParams(context), useGoEpsonTls(context));
- this.mIrsRepository.saveInkReplenishServerUrl(context, redirectLocation);
- if (redirectLocation == null) {
- return false;
- }
- this.mPrinterAdapter.activateEma(readyInkInfo);
- InkRplnInfoClient.InkRsInfo inkDsInfo = this.mInkRsInfoClient.getInkDsInfo(serialNo, redirectLocation);
- if (inkDsInfo == null) {
- return false;
- }
- this.mIrsRepository.saveData(context, inkDsInfo);
- return true;
- }
- /* access modifiers changed from: package-private */
- @VisibleForTesting
- public boolean checkPrinterAndNetworkConnectivity(@NonNull Context context) {
- if (Utils.isConnectedWifi(context) && !WiFiDirectManager.isSimpleAP(context) && Utils.isOnline(context) && !this.mPrinterAdapter.isRemotePrinter(context)) {
- return true;
- }
- return false;
- }
- public synchronized void clearServerReplyPrinterInfo(Context context) {
- this.mIrsRepository.clearServerData(context);
- }
- /* JADX WARNING: Code restructure failed: missing block: B:14:0x001c, code lost:
- return r1;
- */
- /* Code decompiled incorrectly, please refer to instructions dump. */
- public synchronized boolean needsDisplayInvitationDialog(@android.support.annotation.NonNull android.content.Context r3) {
- /*
- r2 = this;
- monitor-enter(r2)
- epson.print.inkrpln.InkRplnRepository r0 = r2.mIrsRepository // Catch:{ all -> 0x001d }
- boolean r0 = r0.getInvitationDialogDisabledValue(r3) // Catch:{ all -> 0x001d }
- r1 = 0
- if (r0 == 0) goto L_0x000c
- monitor-exit(r2)
- return r1
- L_0x000c:
- epson.print.inkrpln.InkRplnRepository r0 = r2.mIrsRepository // Catch:{ all -> 0x001d }
- epson.print.inkrpln.InkRplnInfoClient$InkRsInfo r3 = r0.getInfo(r3) // Catch:{ all -> 0x001d }
- if (r3 == 0) goto L_0x001b
- boolean r3 = r3.needToDisplayInvitationDialog() // Catch:{ all -> 0x001d }
- if (r3 == 0) goto L_0x001b
- r1 = 1
- L_0x001b:
- monitor-exit(r2)
- return r1
- L_0x001d:
- r3 = move-exception
- monitor-exit(r2)
- throw r3
- */
- throw new UnsupportedOperationException("Method not decompiled: epson.print.inkrpln.InkReplenishSystem.needsDisplayInvitationDialog(android.content.Context):boolean");
- }
- public synchronized void setServerCheckDisabled(@NonNull Context context) {
- this.mIrsRepository.saveInvitationDialogDisableValue(context, true);
- }
- /* JADX WARNING: Code restructure failed: missing block: B:24:0x0035, code lost:
- return null;
- */
- @android.support.annotation.Nullable
- /* Code decompiled incorrectly, please refer to instructions dump. */
- public synchronized android.net.Uri refreshReplenInfoAndGetJumpUrl(@android.support.annotation.NonNull android.content.Context r5) {
- /*
- r4 = this;
- monitor-enter(r4)
- epson.print.inkrpln.InkRplnRepository r0 = r4.mIrsRepository // Catch:{ all -> 0x0038 }
- java.lang.String r0 = r0.getInkReplenishServerUrl(r5) // Catch:{ all -> 0x0038 }
- r1 = 0
- if (r0 != 0) goto L_0x000c
- monitor-exit(r4)
- return r1
- L_0x000c:
- epson.print.inkrpln.PrinterAdapter r2 = r4.mPrinterAdapter // Catch:{ all -> 0x0038 }
- java.lang.String r2 = r2.getSerialNo(r5) // Catch:{ all -> 0x0038 }
- epson.print.inkrpln.InkRplnInfoClient r3 = r4.mInkRsInfoClient // Catch:{ IOException | IllegalArgumentException -> 0x0036 }
- epson.print.inkrpln.InkRplnInfoClient$InkRsInfo r0 = r3.getInkDsInfo(r2, r0) // Catch:{ IOException | IllegalArgumentException -> 0x0036 }
- if (r0 == 0) goto L_0x0034
- java.lang.String r3 = r0.landingUrl // Catch:{ IOException | IllegalArgumentException -> 0x0036 }
- if (r3 == 0) goto L_0x0034
- if (r2 != 0) goto L_0x0021
- goto L_0x0034
- L_0x0021:
- epson.print.inkrpln.InkRplnRepository r3 = r4.mIrsRepository // Catch:{ IOException | IllegalArgumentException -> 0x0036 }
- r3.saveData(r5, r0) // Catch:{ IOException | IllegalArgumentException -> 0x0036 }
- java.lang.String r5 = r0.landingUrl // Catch:{ IOException | IllegalArgumentException -> 0x0036 }
- boolean r0 = r0.appendSerial // Catch:{ IOException | IllegalArgumentException -> 0x0036 }
- if (r0 == 0) goto L_0x002d
- goto L_0x002e
- L_0x002d:
- r2 = r1
- L_0x002e:
- android.net.Uri r5 = r4.getReadyInkUri(r5, r2) // Catch:{ IOException | IllegalArgumentException -> 0x0036 }
- monitor-exit(r4)
- return r5
- L_0x0034:
- monitor-exit(r4)
- return r1
- L_0x0036:
- monitor-exit(r4)
- return r1
- L_0x0038:
- r5 = move-exception
- monitor-exit(r4)
- throw r5
- */
- throw new UnsupportedOperationException("Method not decompiled: epson.print.inkrpln.InkReplenishSystem.refreshReplenInfoAndGetJumpUrl(android.content.Context):android.net.Uri");
- }
- /* JADX WARNING: Code restructure failed: missing block: B:15:0x0024, code lost:
- return null;
- */
- @android.support.annotation.Nullable
- /* Code decompiled incorrectly, please refer to instructions dump. */
- public synchronized android.net.Uri getReadyInkUriFromSavedData(@android.support.annotation.NonNull android.content.Context r4) {
- /*
- r3 = this;
- monitor-enter(r3)
- epson.print.inkrpln.InkRplnRepository r0 = r3.mIrsRepository // Catch:{ all -> 0x0025 }
- epson.print.inkrpln.InkRplnInfoClient$InkRsInfo r0 = r0.getInfo(r4) // Catch:{ all -> 0x0025 }
- r1 = 0
- if (r0 == 0) goto L_0x0023
- java.lang.String r2 = r0.landingUrl // Catch:{ all -> 0x0025 }
- if (r2 != 0) goto L_0x000f
- goto L_0x0023
- L_0x000f:
- epson.print.inkrpln.PrinterAdapter r2 = r3.mPrinterAdapter // Catch:{ all -> 0x0025 }
- java.lang.String r4 = r2.getSerialNo(r4) // Catch:{ all -> 0x0025 }
- java.lang.String r2 = r0.landingUrl // Catch:{ all -> 0x0025 }
- boolean r0 = r0.appendSerial // Catch:{ all -> 0x0025 }
- if (r0 == 0) goto L_0x001c
- goto L_0x001d
- L_0x001c:
- r4 = r1
- L_0x001d:
- android.net.Uri r4 = r3.getReadyInkUri(r2, r4) // Catch:{ all -> 0x0025 }
- monitor-exit(r3)
- return r4
- L_0x0023:
- monitor-exit(r3)
- return r1
- L_0x0025:
- r4 = move-exception
- monitor-exit(r3)
- throw r4
- */
- throw new UnsupportedOperationException("Method not decompiled: epson.print.inkrpln.InkReplenishSystem.getReadyInkUriFromSavedData(android.content.Context):android.net.Uri");
- }
- /* access modifiers changed from: package-private */
- @VisibleForTesting
- public Uri getReadyInkUri(@NonNull String str, @Nullable String str2) {
- Uri.Builder buildUpon = Uri.parse(str).buildUpon();
- if (str2 != null) {
- buildUpon.appendQueryParameter("sn", encodePrinterSerial(str2));
- }
- return buildUpon.build();
- }
- @NonNull
- static String encodePrinterSerial(@NonNull String str) {
- return Base64.encodeToString(str.getBytes(Charset.forName(CharEncoding.US_ASCII)), 2);
- }
- public boolean isInSupportedArea() {
- return isSupportedCountry(Locale.getDefault().getCountry());
- }
- /* access modifiers changed from: package-private */
- @VisibleForTesting
- public boolean isSupportedCountry(String str) {
- return Arrays.asList(new String[]{Locale.US.getCountry(), Locale.CANADA.getCountry(), Locale.UK.getCountry(), Locale.FRANCE.getCountry(), Locale.ITALY.getCountry(), Locale.GERMANY.getCountry(), "ES", "PT", "NL", "CZ", "DK", "FI", "NO", "PL", "SE", "AT", "BE", "IE", "CH"}).contains(str);
- }
- static boolean isInkReplenishSystemEnabled(@NonNull Context context) {
- return context.getResources().getBoolean(R.bool.ink_replenish_system_enabled);
- }
- static boolean useGoEpsonTls(@NonNull Context context) {
- return context.getResources().getBoolean(R.bool.ink_replen_go_epson_use_tls);
- }
- }
|