Skip to content

Instantly share code, notes, and snippets.

View pjwelcome's full-sized avatar

Peter-John Welcome pjwelcome

View GitHub Profile
val requestBody = ModelRequestBody(PayloadRequest(ModelImage(imgString)))
Network("https://automl.googleapis.com/v1beta1/",true).getRetrofitClient().create(Endpoint::class.java).classifyImage(requestBody).enqueue(object : Callback<PayloadResult> {
override fun onResponse(call: Call<PayloadResult>?, response: Response<PayloadResult>?) {
if (response!!.isSuccessful) {
result_textview.text = "${response?.body()?.items?.first()?.displayName} Score: ${(response?.body()?.items?.first()?.classification?.let { it.score * 100 })}"
}
}
override fun onFailure(call: Call<PayloadResult>, t: Throwable) {
print(t!!.message)
private fun getBytesFromBitmap(bitmap: Bitmap): ByteArray {
val stream = ByteArrayOutputStream()
bitmap.compress(CompressFormat.JPEG, 70, stream)
return stream.toByteArray()
}
val bitmap = MediaStore.Images.Media.getBitmap(this.contentResolver, contentURI)
Toast.makeText(this@MainActivity, "Image Saved!", Toast.LENGTH_SHORT).show()
imageView.setImageBitmap(bitmap)
fun getRetrofitClient(): Retrofit {
return Retrofit.Builder()
.baseUrl(baseUrl)
.client(okHttpClient)
.addCallAdapterFactory(CoroutineCallAdapterFactory())
.addConverterFactory(gsonConverterFactory)
.build()
}
internal interface Endpoint {
@Headers("Content-Type: application/json")
@POST("projects/{ProjectName}/locations/{region}/models/{AutoML_Model_ID}:predict")
fun classifyImage(@Body body: ModelRequestBody): Call<PayloadResult>
}
val headerAuthorizationInterceptor = Interceptor() {
var request = it.request()
val headers = request.headers().newBuilder().add("Authorization","Bearer Enter Service Account Token here").build()
request = request.newBuilder().headers(headers).build()
return@Interceptor it.proceed(request)
}
httpClientBuilder.addInterceptor(headerAuthorizationInterceptor)
okHttpClient = httpClientBuilder.build()
data class SearchRepoResponse(
@field:SerializedName("total_count")
val totalCount: Int,
@field:SerializedName("incomplete_results")
val incompleteResults: Boolean,
@field:SerializedName("items")
val items: List<UserItem>
public class SearchResult {
@SerializedName("id")
@Expose
private Integer id;
@SerializedName("name")
@Expose
private String name;
@SerializedName("full_name")
@Expose
private String fullName;
override func setUp() {
super.setUp()
Resolver.reset()
DepedencyContainer.instance.register(depedency: ProductsRepository.self, implemenation: {
MockProductsRepository()
})
}
func testGivenAProductTheProductsPriceWillBeFiveHundred() {
let expectedPrice = 100.0
let container = DepedencyContainer.instance
container.register(depedency: ProductsRepository.self, implemenation: {
ProductsRepositoryImplementation()
})
extension ProductsRepositoryInjectable {
var products : ProductsRepository {
return Resolver.resolve(dependency: ProductsRepository.self)
}
}