kandi background
Explore Kits

dialogplus | Advanced dialog solution for android | Android library

 by   orhanobut Java Version: 1.11 License: Apache-2.0

 by   orhanobut Java Version: 1.11 License: Apache-2.0

Download this library from

kandi X-RAY | dialogplus Summary

dialogplus is a Java library typically used in Mobile, Android applications. dialogplus has no bugs, it has no vulnerabilities, it has build file available, it has a Permissive License and it has medium support. You can download it from GitHub, Maven.
Simple and advanced dialog solution. <img src='https://github.com/nr4bt/dialogplus/blob/master/art/dialogplus.gif' height='400'/> <img src='https://github.com/nr4bt/dialogplus/blob/master/art/dialogplusanim.gif' height='400'/>.
Support
Support
Quality
Quality
Security
Security
License
License
Reuse
Reuse

kandi-support Support

  • dialogplus has a medium active ecosystem.
  • It has 4928 star(s) with 806 fork(s). There are 139 watchers for this library.
  • It had no major release in the last 12 months.
  • There are 52 open issues and 99 have been closed. On average issues are closed in 398 days. There are 1 open pull requests and 0 closed requests.
  • It has a neutral sentiment in the developer community.
  • The latest version of dialogplus is 1.11
dialogplus Support
Best in #Android
Average in #Android
dialogplus Support
Best in #Android
Average in #Android

quality kandi Quality

  • dialogplus has 0 bugs and 0 code smells.
dialogplus Quality
Best in #Android
Average in #Android
dialogplus Quality
Best in #Android
Average in #Android

securitySecurity

  • dialogplus has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
  • dialogplus code analysis shows 0 unresolved vulnerabilities.
  • There are 0 security hotspots that need review.
dialogplus Security
Best in #Android
Average in #Android
dialogplus Security
Best in #Android
Average in #Android

license License

  • dialogplus is licensed under the Apache-2.0 License. This license is Permissive.
  • Permissive licenses have the least restrictions, and you can use them in most projects.
dialogplus License
Best in #Android
Average in #Android
dialogplus License
Best in #Android
Average in #Android

buildReuse

  • dialogplus releases are available to install and integrate.
  • Deployable package is available in Maven.
  • Build file is available. You can build the component from source.
  • Installation instructions are not available. Examples and code snippets are available.
  • dialogplus saves you 1131 person hours of effort in developing the same functionality from scratch.
  • It has 2555 lines of code, 204 functions and 52 files.
  • It has medium code complexity. Code complexity directly impacts maintainability of the code.
dialogplus Reuse
Best in #Android
Average in #Android
dialogplus Reuse
Best in #Android
Average in #Android
Top functions reviewed by kandi - BETA

kandi has reviewed dialogplus and discovered the below as its top functions. This is intended to give you an instant insight into dialogplus implemented functionality, and help decide if they suit your requirements.

  • On touch up .
  • Handle a touch event .
  • Create the view .
  • Dismisses the dialog .
  • Add content to parent view
  • Get the animation resource .
  • Inflates the given view .
  • Returns the default content height .
  • Get the margin of the specified gravity .
  • Called when an item is clicked .

dialogplus Key Features

Uses normal view as dialog

Provides expandable option

Multiple positioning

Built-in options for easy implementation

Gradle

copy iconCopydownload iconDownload
implementation 'com.orhanobut:dialogplus:1.11@aar'

Usage

copy iconCopydownload iconDownload
DialogPlus dialog = DialogPlus.newDialog(this)
  .setAdapter(adapter)
  .setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(DialogPlus dialog, Object item, View view, int position) {
    }
  })
  .setExpanded(true)  // This will enable the expand feature, (similar to android L share dialog)
  .create();
dialog.show();

More options

copy iconCopydownload iconDownload
.setExpanded(true) // default is false, only works for grid and list

How to Split FirebaseRecyclerOptions View for each user who is logged in when want to order goods

copy iconCopydownload iconDownload
FirebaseRecyclerOptions<PesanHelperClass> options =
        new FirebaseRecyclerOptions.Builder<PesanHelperClass>()
                .setQuery(FirebaseDatabase.getInstance().getReference().child("Order"), PesanHelperClass.class)
                .build();
prosesAdapter = new ProsesAdapter(options);
if (FirebaseAuth.getInstance().getCurrentUser() != null) {

    // 👇 Determine the UID of the current user
    String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

    // 👇 Use a query to get only orders for that UID
    DatabaseReference ordersRef = FirebaseDatabase.getInstance().getReference().child("Order");
    Query query = ordersRef.orderByChild("uid").equalTo(uid);

    // 👇 Use the query in the adapter
    FirebaseRecyclerOptions<PesanHelperClass> options =
            new FirebaseRecyclerOptions.Builder<PesanHelperClass>()
                    .setQuery(query, PesanHelperClass.class)
                    .build();
    prosesAdapter = new ProsesAdapter(options);
    ...
-----------------------
FirebaseRecyclerOptions<PesanHelperClass> options =
        new FirebaseRecyclerOptions.Builder<PesanHelperClass>()
                .setQuery(FirebaseDatabase.getInstance().getReference().child("Order"), PesanHelperClass.class)
                .build();
prosesAdapter = new ProsesAdapter(options);
if (FirebaseAuth.getInstance().getCurrentUser() != null) {

    // 👇 Determine the UID of the current user
    String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

    // 👇 Use a query to get only orders for that UID
    DatabaseReference ordersRef = FirebaseDatabase.getInstance().getReference().child("Order");
    Query query = ordersRef.orderByChild("uid").equalTo(uid);

    // 👇 Use the query in the adapter
    FirebaseRecyclerOptions<PesanHelperClass> options =
            new FirebaseRecyclerOptions.Builder<PesanHelperClass>()
                    .setQuery(query, PesanHelperClass.class)
                    .build();
    prosesAdapter = new ProsesAdapter(options);
    ...

android studio: click on image instead of whole item

copy iconCopydownload iconDownload
 imageView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //startActivity(intent);
    }
});
-----------------------
@Retention(RetentionPolicy.SOURCE)
@IntDef({
   ImageCommand.DELETE,
   ImageCommand.UPDATE,
   ImageCommand.DETAILS,
   ImageCommand.IMAGE,
})
public @interface ImageCommand {
    int DELETE = 1;
    int UPDATE = 2;
    int DETAILS = 3;
    int IMAGE = 4;
}
public MutableLiveData<Pair<Integer,Item>> commandPair = new MutableLiveData<>();

//When you need to delete the image

commandPair.setValue(new Pair<Integer,Item>(ImageCommand.DELETE,mItems.get(position)))

//When you need to update the image

commandPair.setValue(new Pair<Integer,Item>(ImageCommand.UPDATE ,mItems.get(position)))

//When you need to do something when the details is clicked

commandPair.setValue(new Pair<Integer,Item>(ImageCommand.DETAILS,mItems.get(position)))

//When you need to do something when the image is clicked

commandPair.setValue(new Pair<Integer,Item>(ImageCommand.IMAGE,mItems.get(position)))
   adapter.commandPair.observe(getLifecycleOwner(),(command)->{
          if(command == null)
                return;
          switch(command.first){
              case ImageCommand.DELETE:
                   //Delete the image
                   //-> Image is here command.second;
                   break;
              case ImageCommand.UPDATE:
                   //Update the image
                   //-> Image is here command.second;
                   break;
              case ImageCommand.DETAILS:
                   //User click the image details.
                   //-> Image is here command.second;
                   break;
              case ImageCommand.IMAGE:
                   //User click the image itself.
                   //-> Image is here command.second;
                   break;
          }
       
   });
-----------------------
@Retention(RetentionPolicy.SOURCE)
@IntDef({
   ImageCommand.DELETE,
   ImageCommand.UPDATE,
   ImageCommand.DETAILS,
   ImageCommand.IMAGE,
})
public @interface ImageCommand {
    int DELETE = 1;
    int UPDATE = 2;
    int DETAILS = 3;
    int IMAGE = 4;
}
public MutableLiveData<Pair<Integer,Item>> commandPair = new MutableLiveData<>();

//When you need to delete the image

commandPair.setValue(new Pair<Integer,Item>(ImageCommand.DELETE,mItems.get(position)))

//When you need to update the image

commandPair.setValue(new Pair<Integer,Item>(ImageCommand.UPDATE ,mItems.get(position)))

//When you need to do something when the details is clicked

commandPair.setValue(new Pair<Integer,Item>(ImageCommand.DETAILS,mItems.get(position)))

//When you need to do something when the image is clicked

commandPair.setValue(new Pair<Integer,Item>(ImageCommand.IMAGE,mItems.get(position)))
   adapter.commandPair.observe(getLifecycleOwner(),(command)->{
          if(command == null)
                return;
          switch(command.first){
              case ImageCommand.DELETE:
                   //Delete the image
                   //-> Image is here command.second;
                   break;
              case ImageCommand.UPDATE:
                   //Update the image
                   //-> Image is here command.second;
                   break;
              case ImageCommand.DETAILS:
                   //User click the image details.
                   //-> Image is here command.second;
                   break;
              case ImageCommand.IMAGE:
                   //User click the image itself.
                   //-> Image is here command.second;
                   break;
          }
       
   });
-----------------------
@Retention(RetentionPolicy.SOURCE)
@IntDef({
   ImageCommand.DELETE,
   ImageCommand.UPDATE,
   ImageCommand.DETAILS,
   ImageCommand.IMAGE,
})
public @interface ImageCommand {
    int DELETE = 1;
    int UPDATE = 2;
    int DETAILS = 3;
    int IMAGE = 4;
}
public MutableLiveData<Pair<Integer,Item>> commandPair = new MutableLiveData<>();

//When you need to delete the image

commandPair.setValue(new Pair<Integer,Item>(ImageCommand.DELETE,mItems.get(position)))

//When you need to update the image

commandPair.setValue(new Pair<Integer,Item>(ImageCommand.UPDATE ,mItems.get(position)))

//When you need to do something when the details is clicked

commandPair.setValue(new Pair<Integer,Item>(ImageCommand.DETAILS,mItems.get(position)))

//When you need to do something when the image is clicked

commandPair.setValue(new Pair<Integer,Item>(ImageCommand.IMAGE,mItems.get(position)))
   adapter.commandPair.observe(getLifecycleOwner(),(command)->{
          if(command == null)
                return;
          switch(command.first){
              case ImageCommand.DELETE:
                   //Delete the image
                   //-> Image is here command.second;
                   break;
              case ImageCommand.UPDATE:
                   //Update the image
                   //-> Image is here command.second;
                   break;
              case ImageCommand.DETAILS:
                   //User click the image details.
                   //-> Image is here command.second;
                   break;
              case ImageCommand.IMAGE:
                   //User click the image itself.
                   //-> Image is here command.second;
                   break;
          }
       
   });

Insert and retrieve data of logged in user using firebase authentication in android

copy iconCopydownload iconDownload
public class SessionManager {

    SharedPreferences userSessions;
    SharedPreferences.Editor editor;
    Context context;

    private static final String IS_LOGIN = "IsLoggedIn";
    public static final String KEY_NAME = "name";
    public static final String KEY_NUMBER= "number";
    public static final String KEY_EMAIL = "email";

    public SessionManager(Context _context) {
        context = _context;
        userSessions = _context.getSharedPreferences("userLoginSession", Context.MODE_PRIVATE);
        editor = userSessions.edit();
    }

    public void createLoginSession(String name, String number, String email) {    
        editor.putBoolean(IS_LOGIN, true);    
        editor.putString(KEY_NAME, name);
        editor.putString(KEY_NUMBER, number);
        editor.putString(KEY_EMAIL, email);   
        editor.commit();
    }

    public HashMap<String, String> getUsersDetailFromSession() {
        HashMap<String, String> userData = new HashMap<String, String>();
        userData.put(KEY_FULLNAME, userSessions.getString(KEY_NAME, null));
        userData.put(KEY_EMAIL, userSessions.getString(KEY_NUMBER, null));
        userData.put(KEY_EMAIL, userSessions.getString(KEY_EMAIL, null));    
        return userData;
    }

    public boolean checkLogin() {
        if (userSessions.getBoolean(IS_LOGIN, false)) {
            return true;
        } else {
            return false;
        }
    }

    public void logoutUserSession() {
        editor.clear();
        editor.commit();
    }

}
SessionManager sessionManager = new SessionManager(getApplicationContext());
sessionManager.createLoginSession(name, number, email);
SessionManager sessionManager = new MySharedPreferences(getApplicationContext());
HashMap<String, String> hashMap = sessionManager.getUsersDetailFromSession();
String name = hashMap.get(SessionManager.KEY_NAME);
String number = hashMap.get(SessionManager.KEY_NUMBER);
String email = hashMap.get(SessionManager.KEY_EMAIL);
-----------------------
public class SessionManager {

    SharedPreferences userSessions;
    SharedPreferences.Editor editor;
    Context context;

    private static final String IS_LOGIN = "IsLoggedIn";
    public static final String KEY_NAME = "name";
    public static final String KEY_NUMBER= "number";
    public static final String KEY_EMAIL = "email";

    public SessionManager(Context _context) {
        context = _context;
        userSessions = _context.getSharedPreferences("userLoginSession", Context.MODE_PRIVATE);
        editor = userSessions.edit();
    }

    public void createLoginSession(String name, String number, String email) {    
        editor.putBoolean(IS_LOGIN, true);    
        editor.putString(KEY_NAME, name);
        editor.putString(KEY_NUMBER, number);
        editor.putString(KEY_EMAIL, email);   
        editor.commit();
    }

    public HashMap<String, String> getUsersDetailFromSession() {
        HashMap<String, String> userData = new HashMap<String, String>();
        userData.put(KEY_FULLNAME, userSessions.getString(KEY_NAME, null));
        userData.put(KEY_EMAIL, userSessions.getString(KEY_NUMBER, null));
        userData.put(KEY_EMAIL, userSessions.getString(KEY_EMAIL, null));    
        return userData;
    }

    public boolean checkLogin() {
        if (userSessions.getBoolean(IS_LOGIN, false)) {
            return true;
        } else {
            return false;
        }
    }

    public void logoutUserSession() {
        editor.clear();
        editor.commit();
    }

}
SessionManager sessionManager = new SessionManager(getApplicationContext());
sessionManager.createLoginSession(name, number, email);
SessionManager sessionManager = new MySharedPreferences(getApplicationContext());
HashMap<String, String> hashMap = sessionManager.getUsersDetailFromSession();
String name = hashMap.get(SessionManager.KEY_NAME);
String number = hashMap.get(SessionManager.KEY_NUMBER);
String email = hashMap.get(SessionManager.KEY_EMAIL);
-----------------------
public class SessionManager {

    SharedPreferences userSessions;
    SharedPreferences.Editor editor;
    Context context;

    private static final String IS_LOGIN = "IsLoggedIn";
    public static final String KEY_NAME = "name";
    public static final String KEY_NUMBER= "number";
    public static final String KEY_EMAIL = "email";

    public SessionManager(Context _context) {
        context = _context;
        userSessions = _context.getSharedPreferences("userLoginSession", Context.MODE_PRIVATE);
        editor = userSessions.edit();
    }

    public void createLoginSession(String name, String number, String email) {    
        editor.putBoolean(IS_LOGIN, true);    
        editor.putString(KEY_NAME, name);
        editor.putString(KEY_NUMBER, number);
        editor.putString(KEY_EMAIL, email);   
        editor.commit();
    }

    public HashMap<String, String> getUsersDetailFromSession() {
        HashMap<String, String> userData = new HashMap<String, String>();
        userData.put(KEY_FULLNAME, userSessions.getString(KEY_NAME, null));
        userData.put(KEY_EMAIL, userSessions.getString(KEY_NUMBER, null));
        userData.put(KEY_EMAIL, userSessions.getString(KEY_EMAIL, null));    
        return userData;
    }

    public boolean checkLogin() {
        if (userSessions.getBoolean(IS_LOGIN, false)) {
            return true;
        } else {
            return false;
        }
    }

    public void logoutUserSession() {
        editor.clear();
        editor.commit();
    }

}
SessionManager sessionManager = new SessionManager(getApplicationContext());
sessionManager.createLoginSession(name, number, email);
SessionManager sessionManager = new MySharedPreferences(getApplicationContext());
HashMap<String, String> hashMap = sessionManager.getUsersDetailFromSession();
String name = hashMap.get(SessionManager.KEY_NAME);
String number = hashMap.get(SessionManager.KEY_NUMBER);
String email = hashMap.get(SessionManager.KEY_EMAIL);
-----------------------
getReference().child("contacts")
getReference().child(mAuth.getCurrentUser().getUid()).child("contacts")
-----------------------
getReference().child("contacts")
getReference().child(mAuth.getCurrentUser().getUid()).child("contacts")

Community Discussions

Trending Discussions on dialogplus
  • Firebase crashlytics not able to read crash reports
  • How to Split FirebaseRecyclerOptions View for each user who is logged in when want to order goods
  • android studio: click on image instead of whole item
  • Insert and retrieve data of logged in user using firebase authentication in android
Trending Discussions on dialogplus

QUESTION

Firebase crashlytics not able to read crash reports

Asked 2022-Apr-11 at 14:08

I have configured crashlytics as per Firebase Documentation https://firebase.google.com/docs/crashlytics/get-started?platform=android. But crash reports not generated and uploaded to server.

server

Kindly refer my build details.

Here is our project-level build.gradle

buildscript {
    
    repositories {
        google()
        jcenter()

        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.1'
        classpath 'com.google.gms:google-services:4.3.10'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'

    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io'}
        maven{ url 'https://maven.google.com/' }
        mavenCentral()

        flatDir {
            dirs 'libs'
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

build.gradle(:app)

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'

android {

    compileSdkVersion 28
    defaultConfig {
        applicationId "com.XXX.XXX"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 375
        versionName "2.25.1"

        multiDexEnabled true
        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
        dataBinding {
            enabled = true
        }
        signingConfig signingConfigs.config
    }

    android {
        lintOptions {
            checkReleaseBuilds false
            abortOnError false
        }
    }

    flavorDimensions "appVariant", "projectCode"
    productFlavors {
        A {
            applicationId 'com.XXX.A'
            dimension "appVariant"
        }
        B {
            applicationId 'com.XXX.B'
            dimension "appVariant"
        }
        C {
            applicationId 'com.XXX.C'
            dimension "appVariant"
        }
        D {
            applicationId 'com.XXX.D'
            dimension "appVariant"
        }
        DEV {
            dimension "projectCode"
        }
        QA {
            dimension "projectCode"
        }
        LIVE {
            dimension "projectCode"
        }
        DEMO {
            dimension "projectCode"
        }
        BETA {
            dimension "projectCode"
        }
    }

    applicationVariants.all { variant ->
        variant.outputs.all { output ->
            def project = "XXX"
            def SEP = "_"
            def flavor = variant.productFlavors[0].name
            def projcode = variant.productFlavors[1].name
            def buildType = variant.buildType.name
            def buildTypeName = "";
            switch (buildType) {
                case "ABC": buildTypeName = SEP + "AB"; break;
                case "XYZ": buildTypeName = SEP + "XY"; break;
                default:
                    buildTypeName = "";
            }

            def version = variant.versionName
            def newApkName = project + buildTypeName + SEP + flavor + SEP + projcode + SEP + version + ".apk"

            outputFileName = new File(newApkName)
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    buildTypes {
        debug {

            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
            buildConfigField "String", "AREA", "\"\""
        }
        
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
            buildConfigField "String", "AREA", "\"\""
        }
        ABC {
            signingConfig signingConfigs.config
            minifyEnabled false
            buildConfigField "String", "AREA", "\"_A\""
        }
        XYZ {
            signingConfig signingConfigs.config
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
            buildConfigField "String", "AREA", "\"_X\""
        }
    }
    
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LGPL2.1'
    }
}

repositories {

    maven {
        url 'https://maven.google.com/'
        name 'Google'
    }

}

dependencies {
    def room_version = "1.1.1"
    def lifecycle_version = "1.1.1"
    def work_version = "1.0.0-beta01"
    implementation files('libs/commons-net-3.3.jar')
    implementation files('libs/httpclient-4.3.4.jar')
    implementation files('libs/httpcore-4.3.2.jar')
    implementation files('libs/httpmime-4.3.4.jar')
    implementation files('libs/silipmlib.jar')
    implementation files('libs/HyperLogLib8.jar')
    
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:29.3.0')
    
    implementation 'com.google.firebase:firebase-crashlytics'
    implementation 'com.google.firebase:firebase-analytics'
    implementation 'com.google.firebase:firebase-messaging'

    //dependency for Workmanager
    implementation 'androidx.work:work-runtime:2.0.1'

    //dependencies for Room database
    implementation 'androidx.room:room-runtime:2.0.0'
    //noinspection GradleCompatible
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    annotationProcessor 'androidx.room:room-compiler:2.0.0'
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.0.0'
    //dependency for custom progress dialog

    //dependency for retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.4.0'
    implementation 'com.google.code.gson:gson:2.8.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.1.0'

    //dependency for joda time for date time calculation
    implementation 'joda-time:joda-time:2.10'

    //dependency for glide
    implementation 'com.github.bumptech.glide:glide:3.7.0'

    //dependency for custom toast
    implementation 'com.valdesekamdem.library:md-toast:0.9.0'

    //dependency for marshmallow permission - dexter library
    implementation 'com.karumi:dexter:4.2.0'

    // ViewModel and LiveData
    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
    annotationProcessor 'androidx.lifecycle:lifecycle-compiler:2.0.0'

    // alternately - if using Java8, use the following instead of compiler
    implementation 'androidx.lifecycle:lifecycle-common-java8:2.0.0'

    implementation 'com.jakewharton:butterknife:10.1.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'

    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
    implementation project(':floatingmenu')
    implementation project(':html2bitmap')
    debugImplementation 'com.amitshekhar.android:debug-db:1.0.4'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
    implementation 'com.github.vipulasri:timelineview:1.0.6'
    implementation 'me.relex:circleindicator:1.2.2@aar'
    implementation 'com.haozhang.libary:android-slanted-textview:1.2'
    implementation 'com.google.android.gms:play-services-maps:15.0.1'
    implementation 'com.google.android.gms:play-services-location:15.0.1'

    // implementation 'com.google.android.gms:play-services-gcm:11.8.0'

    // implementation 'com.google.android.gms:play-services-ads:11.8.0'
    implementation('com.github.florent37:materialviewpager:1.2.3') {
        exclude group: 'com.android.support'
    }

    implementation 'com.orhanobut:dialogplus:1.11@aar'

    //  implementation 'me.dm7.barcodescanner:zbar:1.8.4'
    implementation 'me.dm7.barcodescanner:zxing:1.9'
    implementation 'com.journeyapps:zxing-android-embedded:2.3.0@aar'
    implementation 'com.journeyapps:zxing-android-legacy:2.3.0@aar'
    implementation 'com.journeyapps:zxing-android-integration:2.3.0@aar'
    implementation 'com.google.zxing:core:3.2.0'
    implementation 'net.cachapa.expandablelayout:expandablelayout:2.9.2'
    implementation 'com.github.siyamed:android-shape-imageview:0.9.+@aar'
    implementation files('libs/HyperLogLib8.jar')
    implementation project(':scandecode-release')
    implementation 'com.tt:whorlviewlibrary:1.0.3'
    implementation 'io.reactivex:rxandroid:1.2.1'
    implementation 'io.reactivex:rxjava:1.1.6'
    implementation 'com.jakewharton.rxbinding:rxbinding:0.4.0'
    implementation 'com.jakewharton.rxbinding:rxbinding-design:0.4.0'

    implementation 'org.apache.commons:commons-text:1.7'

    // these are for retrolambda and streams api
    implementation 'com.annimon:stream:1.1.2'

}

With initialisation:

FirebaseApp.initializeApp(this)
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true)

And manifest:

<meta-data
            android:name="firebase_crashlytics_collection_enabled"
            android:value="true" />

Here is the logcat for the Crashlytics/CrashTest crash:

2022-04-10 15:53:07.717 21310-21310/com.XXX.XXX E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.XXX.XXX, PID: 21310
    java.lang.RuntimeException: Test Crash
        at com.XXX.XXX.UI.HomeActivity$1.onClick(HomeActivity.java:345)
        at android.view.View.performClick(View.java:6392)
        at android.view.View$PerformClick.run(View.java:25133)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:198)
        at android.app.ActivityThread.main(ActivityThread.java:7055)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:523)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:836)

This is the log that we receive when app relaunched after crash.

D:\user\Android Projects\XXX>adb logcat -s FirebaseCrashlytics
--------- beginning of main
--------- beginning of system
--------- beginning of crash
04-10 15:54:56.911 22018 22018 I FirebaseCrashlytics: Initializing Firebase Crashlytics 18.2.9 for com.XXX.XXX
04-10 15:54:56.926 22018 22018 D FirebaseCrashlytics: Crashlytics automatic data collection ENABLED by API.
04-10 15:54:56.940 22018 22018 D FirebaseCrashlytics: AnalyticsConnector now available.
04-10 15:54:56.943 22018 22018 D FirebaseCrashlytics: Registered Firebase Analytics listener.
04-10 15:54:56.948 22018 22018 D FirebaseCrashlytics: Mapping file ID is: 00000000000000000000000000000000
04-10 15:54:56.958 22018 22018 D FirebaseCrashlytics: Checking for cached settings...
04-10 15:54:56.992 22018 22018 D FirebaseCrashlytics: Loaded cached settings: {"settings_version":3,"cache_duration":86400,"features":{"collect_logged_exceptions":true,"collect_reports":
true,"collect_analytics":false,"prompt_enabled":false,"push_enabled":false,"firebase_crashlytics_enabled":false,"collect_anrs":true,"collect_metric_kit":false},"app":{"status":"activated
","update_required":false,"report_upload_variant":2,"native_report_upload_variant":2},"fabric":{"org_id":"62513aa60277ea5e0396d4ef","bundle_id":"com.XXX.XXX"},"on_demand_
upload_rate_per_minute":10,"on_demand_backoff_base":1.2,"on_demand_backoff_step_duration_seconds":60,"expires_at":1649666891559}
04-10 15:54:56.996 22018 22018 D FirebaseCrashlytics: Crashlytics automatic data collection ENABLED by API.
04-10 15:54:57.113 22018 22018 D FirebaseCrashlytics: Successfully configured exception handler.
04-10 15:54:57.116 22018 22049 D FirebaseCrashlytics: Opening a new session with ID 6252B07803E20001560228F94565CB5E
04-10 15:54:57.183 22018 22049 D FirebaseCrashlytics: Registered Firebase Analytics event receiver for breadcrumbs
04-10 15:54:58.013 22018 22018 D FirebaseCrashlytics: Crashlytics automatic data collection ENABLED by API.
04-10 15:54:58.642 22018 22018 D FirebaseCrashlytics: Crashlytics automatic data collection ENABLED by API.

These are set to false in cached settings:

"collect_analytics":false,
"firebase_crashlytics_enabled":false,

This setting was weird. Both of them are false for some reason though I never did turn them off explicitly. Never even played with these settings.

Not sure what is wrong. Any help will be appreciated.

ANSWER

Answered 2022-Apr-11 at 14:08

Solved!..
There was another utility logger library initialized in the application class that prevented crashlytics from collecting log. https://github.com/hypertrack/hyperlog-android

Also the initialization & manifest part is not necessary unless you want to explicitly enable/disable crashlytics working.

Source https://stackoverflow.com/questions/71815836

Community Discussions, Code Snippets contain sources that include Stack Exchange Network

Vulnerabilities

No vulnerabilities reported

Install dialogplus

You can download it from GitHub, Maven.
You can use dialogplus like any standard Java library. Please include the the jar files in your classpath. You can also use any IDE and you can run and debug the dialogplus component as you would do with any other Java program. Best practice is to use a build tool that supports dependency management such as Maven or Gradle. For Maven installation, please refer maven.apache.org. For Gradle installation, please refer gradle.org .

Support

For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .

DOWNLOAD this Library from

Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
over 430 million Knowledge Items
Find more libraries
Reuse Solution Kits and Libraries Curated by Popular Use Cases

Save this library and start creating your kit

Explore Related Topics

Share this Page

share link
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
over 430 million Knowledge Items
Find more libraries
Reuse Solution Kits and Libraries Curated by Popular Use Cases

Save this library and start creating your kit

  • © 2022 Open Weaver Inc.
  • © 2022 Open Weaver Inc.