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

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: 568

Google certificate does not match private key in Play console

Hi everyone,

I was about to publish my first app on Play Store and everything ran smooth until I had to upload my Android Studio Bundle encrypted key (.pepk file).
The Play console displays the following error message :
"The private key does not match the certificate we have for this application". (english translation of a french message).
I do not know what to do. I downloaded and ran the pepk java tool but the result is the same.
What is the certificate the console is talking about ?
Is it possible to reset it and how ?
When I tried to upload a "regular" apk file, the console blocked and forced me to build my app as a Android App Bundle, thus requiring a .pepk file for the encrypted private key.

I have never changed my email for perhaps 20 years. I only bought a new laptop tow months ago.

Thank you so much for your help.

Jean-michel, Nemours, France

It's "its" damn it!

I'm sorry. I try hard to keep my inner grammar nazi under wraps. But sometimes, much like Dr Jekyll, it just has to emerge. :eek:

Let's talk about the constantly misused "it's" when "its" is called for.

According to Merriam-Webster:

It's is a contraction of two words, it is or it has.

Its is an adjective meaning: of or relating to it or itself especially as possessor, agent, or object of an action.

In other words, think of its as 'belonging to it'--just like hers and his mean belonging to her/him.

When you say, "the phone uses it's memory..." you're actually saying, "the phone uses it is memory...", which makes no sense.

Now, if you're saying "it's in the kitchen," that makes perfect sense! "It is in the kitchen."

That's our lesson for today. :D

Maybe next time we'll tackle the continually misused your ('belonging to you') versus the correct you're ('you are')...

[FREE][GAME] - Ninja Taigen

Hello, i published my game on google play store. All programming,drawing, game design belongs to me.
Only musics and sound effects are the assets which i did not produce and found from different sources.

Game is a platformer-runner type of game. It has 28 different levels with 2 maps.
All levels are have the missions such as finish the level in given time, or collect a certain amount of diamonds.

For people who wants to try the game, there is a link and some screenshots from the game at below.

Link = https://play.google.com/store/apps/details?id=com.DomatisGames.NinjaTaigen

Ss1.png


ss6.png


ss3.png

"Allow My Account to turn on wifi", message

Hello. I'm new to using forums so, if my etiquette is a little off, please forgive me.
I've had this problem going on now for about a week now, and was wondering if anyone can share their thoughts on a solution to fix it. I've tried everything I possibly could, within my settings but, nothing has been taking care of the matter.
My question is, how do I stop this message (please see attachment) from popping up, every time I go to look at my phone? Thank you.

Attachments

  • Screenshot_20190908-080957_Settings.jpg
    Screenshot_20190908-080957_Settings.jpg
    121.7 KB · Views: 389

TCP client send only first char to server

Hello ,
I have a strange problem
I'm trying to send string using TCP client .
I can see the string that I want to send is in the right length (about 15 chars) , but on the server side I only get the first char....
I thought the prboem is in the server code (which is not) so I have also check with WireShark - agian I only get the first char

what is the problem?

private void initViews() {
txtBarcodeValue = findViewById(R.id.txtBarcodeValue);
surfaceView = findViewById(R.id.surfaceView);
btnAction = findViewById(R.id.btnAction);



btnAction.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View v) {

if (intentData.length() > 0) {

Thread thread = new Thread(new Runnable() {

@override
public void run() {
try {

String server_ip = "My.Server.IP";
int server_port = 8888;

String messageStr = intentData + "!" + Number+"!"+ name+"!";

Socket clientSocket = new Socket(server_ip, server_port);
clientSocket.setSoTimeout(2000);// I thought maye this is the problem - didn't help
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
outToServer.writeBytes(messageStr + 'n');
ServerReply = inFromServer.readLine();

///need to write a function that check the response

clientSocket.close();


} catch (Exception e) {
e.printStackTrace();
}

finally {


}
}
});

thread.start();



}
Toast.makeText(getApplicationContext(),ServerReply,Toast.LENGTH_LONG).show();
// finish();

}


});
}


anyone?

Thanks ,

Help Phone stuck at blue screens (Use the Emergency recovery function..." or Download mode (Odin))

I have a Samsung Galaxy A3 (SM-A320FL). For the past several hours, I've been trying to flash stock rom through Odin. I have no idea why, but all attempts failed. After the first or second attempt, I tried to reboot the phone, but it got stuck at a black screen with a message saying "Device storage corrupt, the data partition has been corrupted", asking me to factory reset. There was a reset button, which eventually brought me to the same screen after pressing it.

I tried following other people's directions by reinstalling Samsung drivers (drivers were most likely not the problem since my phone got detected by Odin), factory resetting via twrp, which couldn't be done because it failed to mount /data. I couldn't even repair /data BEFORE flashing stock rom, that's why I tried flashing stock rom in the first place.

After all of that, my last resort was trying to flash a few more times, once putting in AP file only and once only BL and AP. I probably tried flashing too many times because I can't even enter twrp since turning off the phone quickly leads you to a blue screen with an error sign and the text "An error has occured while updating the device software. Use the Emergency recovery function in the Smart Switch PC software." I tried installing Smart Switch and connecting it with my phone, but it doesn't support my phone. Though I don't think it would have saved me.

So, am I a murderer? Is there any other way to save my phone or can I schedule a funeral?

Toast doen't pop up

hello ,
I have an application that send data to my server user TCP connection and wait for reaply.
the data is been send using tcp - working
I get the replay I want from the server .
when I run the code in debug mdoe - I can see ther replay here "ServerRaplay"

but when I don't see it on the Toast - nothing pop up in the my tablet/phone

there are no errors when I run the code


String messageStr = intentData + "!" + Name+"!"+ Phone+";

String ServerRaplay;
Socket clientSocket = new Socket(server_ip, server_port);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
outToServer.writeBytes(messageStr + 'n');
ServerRaplay = inFromServer.readLine();
Toast.makeText(getApplicationContext(),ServerRaplay,Toast.LENGTH_LONG).show();

clientSocket.close();

what am I missing?
this is all I have done in order to run the toast , didn't add nothing nowhere.(in mainActivity )
Thanks,

Filter

Back
Top Bottom