• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Unlocking mydead dad's phone?

My dad died yesterday and he had a ZTE Blade A610. I need to make sure I can contact people he knew to inform them of his death and when a funeral will be. But I cannot remember his pin code. Is there any way I can get into the phone? I have his gmail account details, I receive his emails on my phone because he wasn't necessarily tech savvy. Can I use the gmail to help unlock his phone?

Customising a spinner

I am working using Fragments and I pull data from a MySQL database and put it into an ArrayList.
I then populate the Spinner with the returned data.
What I can't seem to figure out is how to customize that Spinner holding the data using the ArrayList I already have.

I define a spinner in my onCreateView as"
Code:
private Spinner spinner;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_training_layout, container, false);
    spinner = (Spinner) view.findViewById(R.id.spinnerTrainers);
…

This is my class to extract the data, and how I am populating the Spinner:

Code:
   private class ConnectMySql extends AsyncTask<String, Void, String> {
        List<String> trainers = new ArrayList<String>();
        ArrayAdapter<String> adapter;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected String doInBackground(String... params) {
            try {
                Class.forName("com.mysql.jdbc.Driver");
                Connection con = DriverManager.getConnection(url, user, pass);

                Statement st = con.createStatement();
                ResultSet rs = st.executeQuery("SELECT * FROM pdc_production.die_detail");
                ResultSetMetaData rsmd = rs.getMetaData();

                while (rs.next()) {
                    trainers.add(rs.getString(1).toString() + ":" + rs.getString(2).toString());
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return "";
        }

        @Override
        protected void onPostExecute(String result) {
            adapter = new ArrayAdapter<String> (getContext(), android.R.layout.simple_spinner_dropdown_item, trainers);
//            adapter = ArrayAdapter.createFromResource(getContext(), trainers, android.R.layout.simple_spinner_dropdown_item);
            spinner.setAdapter(adapter);
        }

    }

This line populates the Spinner
Code:
adapter = new ArrayAdapter<String> (getContext(), android.R.layout.simple_spinner_dropdown_item, trainers)
The line right beneath it (commented out)
Code:
adapter = ArrayAdapter.createFromResource(getContext(), trainers, android.R.layout.simple_spinner_dropdown_item)
is the line that I can't quite figure out how to do it. The examples I have looked at show an Array being used, but I already have the ArrayList called trainers, so I don't know how to make use of it instead of creating another array.
Could someone assist me please?

Right now this is what my spinner looks like, very boring!

App.JPG

V20 photos not as good as G5. Why?

I just got the V20 in very good condition as an upgrade from my G5.
I am very unhappy with the quality of the photos from v20 and wondered what others who have had both think?

Often the V20 shows lens flare, is over-exposed and the focus is poor.

Seeing that the V20 is supposed to have the same camera as G5 I was expecting at least the same. It's far far worse.
Also in all reviews I've seen the V20 is supposed to be 16MP but this is only in 4:3 mode whereas the G5 is 16Mp at 16:9. The V20 goes down to 12MP in 16:9. Why has nobody who reviewed it picked up on this? It's almost as if they haven't used the phone for themselves and just taking manufacturer's specifications as read ;-)

Just updated samsung j6 software and everythig has become slowmo

Today I got msg on phone that there is a software update, I clicked on update. now everything has become slowmo. Specially gaming is almost dead, I was playing PUBG and I was facing serious most frame drop and rendering.

How can I revert it back to old software? tono de llamada samsung

My current phone and OS
-------------------------------------
Samsung Galaxy j6
One UI 1.0
Android Version 9
tags: tono de llamada gratis

onCreateOptionsMenu is never called

Hi my friends, I want to make a search bar and want to capture each letter entry. However, onCreateOptionsMenu is not called at all, no debug falls on that line.

Code:
class PhotoFragment : Fragment() {

    companion object {
        fun newInstance() = PhotoFragment()
    }

    @Inject
    lateinit var dataManager: DataManager

    private lateinit var viewModel: PhotoViewModel

    var searchList: MutableList<String> = ArrayList()

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
    ): View? {
        val view = inflater.inflate(R.layout.photo_fragment, container, false)

        (activity as AppCompatActivity).supportActionBar
        view.toolbarProfileSearch.setNavigationOnClickListener { context }
        setHasOptionsMenu(true)

        return view

    }

    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        componentFragment.inject(this)
        viewModel = ViewModelProviders.of(this, PhotoFragmentFactory(dataManager)).get(PhotoViewModel::class.java)
        setHasOptionsMenu(true)


        viewModel.profileResult.observe(this, Observer { profileResult ->
            loadPicture(profileResult)
        })


        btnGetProfilePicture.setOnClickListener {
            viewModel.callProfileResult(editUserName.text.toString())
        }


    }

    override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {

        inflater.inflate(R.menu.toolbar_menu_searchprofile, menu)
        val searchItem = menu.findItem(R.id.search)
        val searchView = searchItem.actionView as SearchView

        searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
            override fun onQueryTextSubmit(query: String?): Boolean {
                searchView.clearFocus()
                searchView.setQuery("", false)
                searchItem.collapseActionView()
                Log.d("SEARCH1", "$query")

                return true

            }

            override fun onQueryTextChange(newText: String?): Boolean {
                Log.d("SEARCH2", "$newText")
                return false

            }
        })


        super.onCreateOptionsMenu(menu, inflater)
    }
}

Outlook Widget - Updates / Releases

yJ2gbrOy0815pt6_JOEFfU4qppbLVR2ikH4955UwzmnoUgnvTiRLdeLEO8oyB9ZF57s=s180-rw


Unfortunately having to give up my windows mobile phone, I turned to the Android system.

I missed the windows dynamic tiles so much, that I started the development of a small android application to try to simulate the famous flipping tiles system (you know, the one that allowed you to know if you had unread messages or incoming events without opening an application).

The Outlook Widget application is free and has been released few days ago. I look forward to your feedbacks and ideas.

https://play.google.com/store/apps/details?id=com.predalpha.outlookwidget

Requires a Microsoft account

Outlook Widget - Updates / Releases

yJ2gbrOy0815pt6_JOEFfU4qppbLVR2ikH4955UwzmnoUgnvTiRLdeLEO8oyB9ZF57s=s180-rw

Unfortunately having to give up my windows mobile phone, I turned to the Android system.

I missed the system of dynamic tiles so much, that I started the development of a small android application to try to make dynamic widgets like windows tiles (you know, the ones that allowed you to know if you had unread mails or upcoming appointments without opening an application).

The Outlook Widget application has been released few days ago. I look forward to your feedbacks and ideas

https://play.google.com/store/apps/details?id=com.predalpha.outlookwidget

requires a microsoft outlook account

Unlocking/S-Off 2019?

I'm still using a Dinc4G because nobody makes phones this small and inexpensive anymore. I recently bought a second phone of the same model for backup purposes in case I lose my primary phone, and I'm trying to unlock it's bootloader.

I went through the process of unlocking/flashing/rooting years ago, but the methods I went through no longer seem to work. My ROM is 2.19.605.2, and apparently you can't downgrade the phone to 2.17.605.2 for the original unlock/CID method.

The custom package on rumrunner.us is supposed to be able to unlock and S-off the phone right out of the box, but every time I run it, I get an error that says, "FATAL: download updated package on rumrunner.us". I've tried this on both Windows 7 and Windows 10 (and have used the fastboot registry fix on Windows 10). I've tried various driver versions, Google drivers, disabling firewalls, and nothing seems to work.

I know my chances of getting any help with such an old phone are slim, but I'd be super grateful.

Body Scanner - Cloth Remover Prank

Hi everyone, Recently i have published a Prank app. Named Body Scanner Prank. As this app is prank. But i am sure that you'll love it if you try it. All the assets, images etc belong to me. I have self created the app and upload it to Palystore. I hope you'll enjoy the small hard work.

If anyone want to check & download it free. Visit the Link:

Link = https://play.google.com/store/apps/...lothes.real_bodyscanner_with_xray_and_clothes

Your's suggestions are highly appreciated.

DlAphfy.png
[/IMG]
DlAphfy.png

Json error: Value <br of type java.lang.String cannot be converted to JSONObject

package com.capstone.infrasketch;

import android.app.ProgressDialog;
import android.content.Intent;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.util.Patterns;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.Request.Method;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

import com.capstone.infrasketch.app.AppConfig;
import com.capstone.infrasketch.app.AppController;
import com.capstone.infrasketch.helper.SQLiteHandler;
import com.capstone.infrasketch.helper.SessionManager;


public class RegisterActivity extends AppCompatActivity {
private static final String TAG = RegisterActivity.class.getSimpleName();

private TextView login;
private EditText fname,address,phone,email,pass;
private Button signup;

private SessionManager session;
private SQLiteHandler db;

@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
getSupportActionBar().hide();

db = new SQLiteHandler(getApplicationContext());
session = new SessionManager(getApplicationContext());

fname = (EditText) findViewById(R.id.fname);
address = (EditText) findViewById(R.id.address);
email = (EditText) findViewById(R.id.email);
pass = (EditText) findViewById(R.id.password);
phone = (EditText) findViewById(R.id.contact);
phone.setTransformationMethod(null);

signup = (Button) findViewById(R.id.signup);
signup.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View v) {
registerUser();
}
});

login = (TextView) findViewById(R.id.link_login);
login.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View v) {
Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
startActivity(intent);
finish();
return;
}
});
}

public void registerUser(){
Log.d(TAG, "Signup");

if (!validate()){
onSignupFailed();
return;
}

signup.setEnabled(false);

final ProgressDialog progressDialog = new ProgressDialog(RegisterActivity.this,R.style.MyAlertDialog);
progressDialog.setIndeterminate(true);
progressDialog.setMessage("Creating Account");
progressDialog.show();

final String fullname = fname.getText().toString().trim();
final String useraddress = address.getText().toString().trim();
final String number = phone.getText().toString().trim();
final String useremail = email.getText().toString().trim();
final String password = pass.getText().toString().trim();

/////////////////////CODE FOR REGISTRATION HERE///////////////////////////////
String tag_string_req = "req_register";

StringRequest strReq = new StringRequest(Method.POST, AppConfig.URL_REGISTER, new Response.Listener<String>() {
@override
public void onResponse(String response) {
Log.d(TAG,"Register Response: " +response.toString());
try {
JSONObject jObj = new JSONObject(new String(response));
boolean error = jObj.getBoolean("error");
if (!error){
JSONObject item = jObj.getJSONObject("user");
String cid = item.getString("cid");
String fname = item.getString("fname");
String addr = item.getString("address");
String contact = item.getString("contact");
String email = item.getString("email");
String photo = item.getString("photo");

db.addUser(fname,addr,contact,email,cid,photo);

Toast.makeText(getApplicationContext(),"User successfully registered. Try login now!",Toast.LENGTH_LONG).show();
// Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
// startActivity(intent);
// finish();
}else{
String errorMsg = jObj.getString("error_msg");
Toast.makeText(getApplicationContext(),errorMsg,Toast.LENGTH_LONG).show();
}
}catch (JSONException e){
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Json error: "+e.getMessage(),Toast.LENGTH_LONG).show();
}

}
}, new Response.ErrorListener(){

@override
public void onErrorResponse(VolleyError error){
Log.e(TAG,"Registration Error:" +error.getMessage());
Toast.makeText(getApplicationContext(),error.getMessage(),Toast.LENGTH_LONG).show();
if(progressDialog.isShowing()){
progressDialog.dismiss();
}
}

}){
@override
protected Map<String,String>getParams(){
Map<String,String> params = new HashMap<String, String>();
params.put("fullname",fullname);
params.put("useraddress",useraddress);
params.put("number",number);
params.put("useremail",useremail);
params.put("password",password);

return params;
}
};
AppController.getInstance().addToRequestQueue(strReq,tag_string_req);

new android.os.Handler().postDelayed(new Runnable() {
@override
public void run() {
onSignupSuccess();
//onSignupFailed();
progressDialog.dismiss();
}
}, 3000);
}

public void onSignupSuccess(){
signup.setEnabled(true);
setResult(RESULT_OK, null);
finish();
}

public void onSignupFailed(){
Toast.makeText(getBaseContext(),"Signup Failed",Toast.LENGTH_LONG).show();
signup.setEnabled(true);
}

public boolean validate(){
boolean valid = true;

String fullname = fname.getText().toString();
String useraddress = address.getText().toString();
String number = phone.getText().toString();
String useremail = email.getText().toString();
String password = pass.getText().toString();

if (fullname.isEmpty() || fullname.length() < 3){
fname.setError("at least 3 characters");
valid = false;
} else {
fname.setError(null);
}

if (useraddress.isEmpty() || useraddress.length() < 8){
address.setError("at least 8 characters");
valid = false;
} else {
address.setError(null);
}

if (number.isEmpty() || number.length() < 11 || number.length() >11){
phone.setError("Must be 11 characters!");
valid = false;
} else {
phone.setError(null);
}

if (useremail.isEmpty() || useremail.length() < 3 || !Patterns.EMAIL_ADDRESS.matcher(useremail).matches()){
email.setError("Enter a valid email address");
valid = false;
} else {
email.setError(null);
}

if (password.isEmpty() || password.length() < 6 || password.length() > 20){
pass.setError("Must be between 6 to 20 characters");
valid = false;
} else {
pass.setError(null);
}

return valid;
}
}

Icon size of bottom navigation view in tablet version

I have a bottom navigation view:

<android.support.design.widget.BottomNavigationView
android:id="@+id/bottomNavView_Bar"
android:layout_width="match_parent"
app:itemIconSize="@dimen/design_navigation"
android:layout_height="match_parent"
android:background="@color/colorBackground"
app:itemTextAppearanceInactive="@Style/BottomNav"
app:itemTextAppearanceActive="@Style/BottomNav.Active"
app:labelVisibilityMode="labeled"
app:menu="@menu/bottom_navigation" />

CzWix.png


So, i created a tablet variation of the layout of the menu:
0pzfQ.png


the text area over the icons, and i can't move the text further down.

I created a dimension file to tablet

46dp but doesn't works

package android.support.annotation does not exist

This error has been posted on stackoverflow however mine is different.I updated to androidx, The project doesn't show any error after sync and cleaning! but when i try to build it, i encounter this error in the build generated source.
error: package android.support.annotation does not exist

C:\Users\REVO-WISSE\Documents\customer_master\app\build\generated\source\apt\debug\com\fundi\passenger\mMassage\InProgressFinishedMassageActivity_ViewBinding.java:5: error: package android.support
.annotation does not exist
import android.support.annotation.UiThread;
^
C:\Users\REVO-WISSE\Documents\customer_master\app\build\generated\source\apt\debug\com\fundi\passenger\mMassage\LocationPickerActivity_ViewBinding.java:4: error: package android.support.annotation
does not exist
import android.support.annotation.CallSuper;
^
C:\Users\REVO-WISSE\Documents\customer_master\app\build\generated\source\apt\debug\com\fundi\passenger\mMassage\LocationPickerActivity_ViewBinding.java:5: error: package android.support.annotation
does not exist
import android.support.annotation.UiThread;
^
C:\Users\REVO-WISSE\Documents\customer_master\app\build\generated\source\apt\debug\com\fundi\passenger\mMassage\MassageActivity_ViewBinding.java:4: error: package android.support.annotation does n
ot exist
import android.support.annotation.CallSuper;


bellow is my app gradle

Code:
apply plugin: 'com.android.application'
apply plugin: 'realm-android'

android {
    compileSdkVersion 28
    buildToolsVersion '28.0.3'
    defaultConfig {
        applicationId 'com.fundi.taxi.rider'
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 13
        versionName '14'
        vectorDrawables.useSupportLibrary = true
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
        dexOptions {
            javaMaxHeapSize '4g'
        }
    }
  
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

dependencies {
    implementation  'pl.droidsonroids.gif:android-gif-drawable:1.2.17'
}
dependencies {
    api fileTree(include: ['*.jar'], dir: 'libs')
    androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
        exclude group: 'com.android.support', module: 'support-annotations'
        exclude group: 'com.google.code.findbugs'
    })
    api('com.mikepenz:fastadapter:2.0.0@aar') {
        transitive = true
    }
    implementation  'com.afollestad.material-dialogs:core:0.9.0.0'
    implementation  'com.mikepenz:iconics-core:2.8.1@aar'
    implementation  'com.mikepenz:fontawesome-typeface:4.6.0.2@aar'

    implementation ('cn.trinea.android.view.autoscrollviewpager:android-auto-scroll-view-pager:1.1.2') {
        exclude module: 'support-v4'
    }
    testImplementation 'junit:junit:4.12'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'

    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.recyclerview:recyclerview:1.0.0'
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.vectordrawable:vectordrawable:1.0.1'
    implementation 'androidx.multidex:multidex:2.0.1'
    implementation  'com.google.guava:guava:24.1-jre'
    implementation  'com.dmitrymalkovich.android:material-design-dimens:1.4'
    implementation  'com.ogaclejapan.smarttablayout:library:1.6.1@aar'
    implementation  'com.ogaclejapan.smarttablayout:utils-v4:1.6.1@aar'
    implementation  'com.jakewharton:butterknife:8.4.0'
    implementation  'me.relex:circleindicator:1.2.2@aar'
    implementation  'com.squareup.okhttp3:okhttp:3.10.0'
    implementation  'com.squareup.retrofit2:retrofit:2.1.0'
    implementation  'com.squareup.retrofit2:converter-gson:2.1.0'
    implementation  'com.squareup.okhttp3:logging-interceptor:3.4.1'
    implementation  'com.google.firebase:firebase-core:17.2.0'
    implementation  'com.google.firebase:firebase-messaging:20.0.0'
    implementation  'com.google.firebase:firebase-auth:19.0.0'
    implementation  'com.mobsandgeeks:android-saripaar:2.0.3'
    implementation  'com.google.android.libraries.places:places:2.0.0'
    implementation  'com.google.android.gms:play-services:12.0.1'
    implementation 'com.google.android.gms:play-services-tasks:17.0.0'
    implementation  'org.greenrobot:eventbus:3.1.0'
    implementation  'com.makeramen:roundedimageview:2.2.1'
    implementation  'com.squareup.picasso:picasso:2.5.2'
    implementation  'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
    implementation  'com.github.siyamed:android-shape-imageview:0.9.3'
    implementation  'de.hdodenhof:circleimageview:2.0.0'
    implementation  'com.github.bumptech.glide:glide:3.7.0'
    implementation  'com.mcxiaoke.volley:library:1.0.19'
    implementation  'com.balysv:material-ripple:1.0.2'

}
dependencies {
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
}
apply plugin: 'com.google.gms.google-services'

Code:
buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        classpath 'com.google.gms:google-services:4.3.1'
        classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0'
        classpath 'io.realm:realm-gradle-plugin:5.13.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        google()
        maven {
            url "https://maven.google.com"
        }
    }
}

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

Attachments

  • Capture.PNG
    Capture.PNG
    49.5 KB · Views: 558

Filter

Back
Top Bottom